PornHub+

Removed ads and analytics. Added filters, boss mode, etc.

// ==UserScript==
// @name PornHub+
// @namespace -
// @version 1.4.0
// @description Removed ads and analytics. Added filters, boss mode, etc.
// @author NotYou
// @include *pornhub.com/*
// @include *pornhubpremium.com/*
// @run-at document-end
// @license GPL-3.0-or-later
// @grant none
// ==/UserScript==

let adBlockEnabled = true // change to "false" (without quotes) to support authors of pornhub.com

// Nerd Stuff

let style = cE('style'),
    h = cE('div'),
    fs = cE('div'),
    logo = $('#headerContainer .logoWrapper'),
    bodies = [],
    videos = [
        'https://yewtu.be/latest_version?id=XyNlqQId-nk&itag=22&local=true',
        'https://yewtu.be/latest_version?id=NsUWXo8M7UA&itag=22&local=true',
        'https://yewtu.be/latest_version?id=JxS5E-kZc2s&itag=22&local=true'
    ], images = [
        'https://yewtu.be/vi/6FQsIfE7sZM/mqdefault.jpg',
        'https://yewtu.be/vi/hY7m5jjJ9mM/mqdefault.jpg',
        'https://yewtu.be/vi/iRXJXaLV0n4/mqdefault.jpg',
        'https://yewtu.be/vi/jHWKtQHXVJg/mqdefault.jpg',
        'https://yewtu.be/vi/rWNKAXAAFmY/mqdefault.jpg',
        'https://yewtu.be/vi/9xLo0PBwM9U/hqdefault.jpg',
        'https://yewtu.be/vi/46a97ejExuY/mqdefault.jpg',
        'https://yewtu.be/vi/48bIZoOQSUI/mqdefault.jpg',
        'https://yewtu.be/vi/mcYnMbJwFCA/mqdefault.jpg',
        'https://yewtu.be/vi/YHFoYJ7sAlY/mqdefault.jpg',
        'https://yewtu.be/vi/sRPXPkFx9wM/hqdefault.jpg',
        'https://yewtu.be/vi/B0Mxj4d7lEs/mqdefault.jpg'
    ], search =$('#searchInput'),
    srch = search?.value,
    playerLocal = localStorage.getItem('mgp_player')

if(!localStorage.getItem('pp')) {
    localStorage.setItem('pp', '{"filter": {"step": "0", "getero": "0", "bdsm": "0"}, "options": {"premium": "0", "footer": "0", "net": "0"}}')
}

// Clean Up Btn

$('.networkListContent')?.insertAdjacentHTML('beforeend', '<li data-id="9"><a id="cleanup-pp" class="networkTab" href="javascript:;" title="Clean up watched videos, player settings, search requests">Clean</a></li>')

$('#cleanup-pp')?.addEventListener('click', cleanUp)

// Ad Block

if(adBlockEnabled) {
    window.open = function() {}
}

for (let i = 0; i < 10; i++) bodies.push(`body > [class*="${i}"]`)

style.appendChild(document.createTextNode(`
${adBlockEnabled ? `.cookiesBanner, #pb_template, .adsbytrafficjunky, .adLinks, .adLink, #hd-rightColVideoPage > .clearfix:first-child, #popsByTrafficJunky, ${bodies.join(',')}, #videoSearchResult > :first-child:not(.userCardLi),
#welcome, .container > div[class=""] > :first-child, #vpContentContainer > div:nth-child(2) > :first-child, .video-wrapper > .hd.clear, #hotVideosSection > :first-child, #js-abContainterMain, .t8fer, .t8fer k0g8,
#footerMenu_advertising, .ad-link, #videoCategory > :first-child, body > *:not(:where(div, template, script, style, link, ins, noscript, iframe)), #photosAlbumsSection.withAd > :first-child, .gifsWrapper > ul > :first-child,
#hottestVideosSection > :first-child, .carouselOverlay, .cookiesBanner + * + * {
display: none !important;
}` : ''}

#header.hasAdAlert {
grid-template-rows: unset !important;
}

#headerContainer {
padding-bottom: 10px;
}

#fast-search-pp {
position: fixed;
z-index: 2147483646;
width: 400px;
height: 40px;
padding: 16px 28px 28px 16px;
background-color: rgba(21, 21, 21, 0.57);
border-radius: 3px;
left: 32vw;
top: 20vh;
}

#fast-search-input-parent-pp {
padding: 5px;
display: flex;
border: 0;
height: 40px;
width: 100%;
background-color: rgb(61, 54, 49);
border-radius: 3px;
}

#fast-search-input-parent-pp .ph-icon-search {
margin-top: 10px;
margin-right: 10px;
font-size: 20px;
}

#fast-search-input-pp {
background-color: unset;
width: 100%;
height: 100%;
font-size: 20px;
border: 0;
}

#fast-search-input-pp::placeholder {
font-style: italic;
color: rgb(164, 164, 164);
}

#download-panel-pp {
display: grid;
margin-left: 15px;
}

#download-panel-pp .reset {
background-color: rgb(40, 40, 40);
}

#download-panel-pp h2 {
margin-left: 15px;
}

.download-panel-item-pp {
margin-left: 20px;
margin-bottom: 6px;
}

.download-panel-item-pp a {
background-color: rgb(255, 144, 0);
color: rgb(0, 0, 0);
border-radius: 4px;
padding: 2px;
margin-right: 2px;
text-decoration: none !important;
}

#download-panel-pp h2 i {
font-style: italic;
font-weight: bolder;
}

#embed-mode-download {
float: right;
width: 32px;
height: 32px;
display: block;
position: relative;
top: 5px;
}

.ph-plus-icon-download {
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktZG93bmxvYWQiIHZpZXdCb3g9IjAgMCAxNiAxNiI+CiAgPHBhdGggZD0iTS41IDkuOWEuNS41IDAgMCAxIC41LjV2Mi41YTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtMi41YS41LjUgMCAwIDEgMSAwdjIuNWEyIDIgMCAwIDEtMiAySDJhMiAyIDAgMCAxLTItMnYtMi41YS41LjUgMCAwIDEgLjUtLjV6Ii8+CiAgPHBhdGggZD0iTTcuNjQ2IDExLjg1NGEuNS41IDAgMCAwIC43MDggMGwzLTNhLjUuNSAwIDAgMC0uNzA4LS43MDhMOC41IDEwLjI5M1YxLjVhLjUuNSAwIDAgMC0xIDB2OC43OTNMNS4zNTQgOC4xNDZhLjUuNSAwIDEgMC0uNzA4LjcwOGwzIDN6Ii8+Cjwvc3ZnPg==);
background-repeat: no-repeat;
background-position: center;
background-size: contain;
filter: invert(1);
display: block;
width: 32px;
height: 24px;
}

#bossMode {
width: 100%;
height: 100vh;
background-color: rgb(255, 255, 255);
position: fixed;
left: 0;
top: 0;
z-index: 2147483647;
}

#bossMode > div {
height: 70px;
width: 100%;
display: flex;
background: rgb(238, 238, 238);
}

#bossMode > div :not(video) {
height: 8vh;
margin-left: 1vw;
margin-top: 1vh;
}

#bossMode > div input {
border: 0px !important;
background: rgb(200, 200, 200);
margin: 0 3vw;
width: 70%;
margin-top: 10px !important;
margin-bottom: -10px !important;
color: rgb(15, 15, 15);
padding: 8px;
height: 30px;
border-radius: 25px;
padding-left: 20px;
}

#bossMode > div input + span {
border-radius: 20px;
width: 12vw;
height: 20px;
background: rgb(193, 193, 193);
margin-top: 22px;
}

#bossMode > div input + span + span {
border-radius: 50%;
background: rgb(193, 193, 193);
width: 50px;
height: 50px;
margin: 7px 2px 0 2vw;
}

#bossMode > div:last-child {
height: 100%;
width: 100%;
display: flex;
}

#bossMode > div:last-child > div {
width: 70%;
height: 60%;
margin-left: 20px;
padding-top: 20px;
}

#bossMode video {
width: 50vw;
height: 50vh;
}

#bossMode > div:last-child > div:not(:first-child) {
width: 40vw;
height: 100%;
padding-left: 30px;
padding-top: 30px;
background: rgb(253, 253, 253);
}

#bossMode > div:last-child img {
width: 25%;
}`))
document.head.appendChild(style)
if(logo) {
    logo.style.display = 'flex'
    logo.insertAdjacentHTML('beforeend', '<i class="ph-icon-add" style="margin-top: 10px;font-size: 20px;"></i>')
}

// Boss Mode

h.id = 'bossMode'
h.style.display = 'none'
h.innerHTML = `
<div>
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR42uzdd3gU1f4G8HfK9vRGTaUTelcRUBBUsKBee79Xf3a9inpRr8YGCmJXxKuCXhv2iopSpSlVECEJJCQkAQLpyfaZ+f0Rwo0xgQQ2yc7s+3keH02GB3fm7O5558w53wMQERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERFRiBJ4CYhaz4ylu04xS/IoQULvMFFIspsQZzcJ0ZIgmCwSJABw+QWPIGieCo9WVu5VC6v9ama1W9z0R2nVqq8u73+AV5GIGACIgthTa3b3t6vC/8XaTCd3dMhpiQ4hItIsHPdnTANQVK3686qV/QU1ypb9TnyyWsp5b/lpp/l5tYmIAYCoHc1elvP3rpHyjWkRcv/kcMnW2h+oKp+mZZb5DvxR6v/y1wPOjI8vTt/PViAiBgCiNvDEkl0nJ0eYZvaLNY3q7JDM7fU6anwathzyFWVXKfNdMTWPZaSne9k6RMQAQBRgs1bu+UffaPmRIfFyV0kIro/OAZeirDvgW7KpWrz+tfGJhWwtImIAIDpBL/ycd+eQBPnxnlFyeLC/1jIv1JVFnp+3V/qufuGMbvlsPSJiACBqoZnLd00dFm99fUCcKU5vr73Kq2lLClzfrHXj4gWnpbrZmkTEAEB0DNMXZcenJ1i+Oa2rZYSs80/Inkq/59s89/2PTej2AluWiBgAiJrw3Krd08d3sT/ewS5Kgfx7VVUFAGia9qd/N/nBPDzHQBCEI/8cL0UDVhR5t2dWWCZknJbAVQNExABAVCdjQ5E9TfMvOyPRPEI8wQl+mqZBVVVomnbMjr7FH1hBgCiKxxUKil2q8n2e+9Z7x6bOY4sTEQMAhbyZy3cPH9PZurx7pGw/kTv8uk6/LYmieCQQNIdPAxbvcX12/aiUC9nyRAwARCFrxrJd15yX6ngrziaKx3OnryhKm3f6gQgDq/d7c9bsLx3wzKSBNXwXEDEAEIWUl9fueebcZOs9FqllH4P2uttv9odaECBJ0jGDwB+lvrIV+819OS+AiAGAKGS8sip37tTu9pta0verqgpFUfTz4W5GEMit9Lu+z/EOyZiUupPvCiIGACJDe21d3vzzUizXNneyX7Df8R/LsR4N5FT63d/mVPV9YlLvXL47iBgAiIx5579mz+ypadZpzS3l6/f7ddvxNyRJEsQmpjrsrvA7FxcrPTJGJxXxXULEAEBkKC+vyb3r/FTbcybx2G97vQ33N/sDf5THAjvK1Yrv8p3JT5/RrYLvFiIGACJDePSnnDOu6m3/wWE69q2/oihHCvcYVVOjAb8e8BW+s7NL8scXCwrfNUTGJvMSkNFlLMuMm9TV8tWxOv9gW9bXmurOU5L+XPBwRAdTl0pv/m8fA/34ziHiCACRrn27rSB/WIIp8Vidv9/vD70vAEGALP/1PuDbPM+P149Imsh3DxEDAJEuvbomd96F3ew3Hu3PGPV5f0vIsvyXeQGf57jfvemk5Kv4LiJiACDSlYwl2UOu7Bm2Idzc9Kw/dv5NhwBFA97PdD41bWzqdF4dIgYAIt34YXvh/kFxcgd2/scfAlwKtI92uW68b0zKG7w6RAb7vPMSkBE9v2rPA+z8W87v9/8pBNgkCFPTbPO8y3MOPDQu7WteISKOABAFrYzt283nWKMru4ZJlsaOh+qEv5YwmUx/+vmAS1M+3uU96fEJSet5dYg4AkAUlDpXh73VNY6dfyBGAup0sAnS5BR5pbpiV88nx3bfyytExBEAoqDyYna2ZYwUVt3JIcpNdWyhsM4/IF8OjSwR3FmmVH6+w5P8/NTUcl4hIo4AEAUNe6n1P51S2PkHQt1oSf0Q0DtaihjfXdrh3LAh6fVhw3y8SkQMAERBYUCc9LfGfq/n3fzaOwQoivKnioEjEiwdqwoStrwOpPMKEekXHwGQYcxZmX/zlb0srzZ2zOfjzeqJEEXxL2WDF+W7l1w3PHkCrw4RAwBRu/pqa0HuyA6mlIa/59B/YDS2gdAXue53/28UqwUSMQAQtZMZPxXEXpluOmgR//ye5nr/1g0Biga8l+l8+t6xqf/i1SHSF84BIEOIsCsPWUTTXwKt0bf1bWuKokAQhCOFgiQBuKSH7X6szCm4d0zay7xCRAwARG0qJVy6oLHOn0P/gdewWqBFEnB+qv1F39Kc/AdOT/uKV4hIH/gIgHQvQ9PEKwsP+MJNgtiwo2IAaD0NqwXud6rKl7k1Ix8+vftGXh0ijgAQtTr7itwLw/s4RN79t89IQJ2OdlE6O9m+2vlNVt+npvTM4RUiYgAgalXxDvHyhr/js//W11ihoMQwyXJ2j7DN7s9zWS2QiAGAqHV1sMnDGnZMvPtvvxDQK0qKmNDDtL3wIy3p44sFLsEgYgAgah1d7FJH3v23bwhoWC1weLyps7tnwfaPgd68QkTBiZMASdcylu1IublvTG7937HqX/torFrgt/nuZdcPTz6dV4eIIwBEARVrslzV8G6U2oeqqhAE4U+FgiYnWU97bd2e928alXI5rxARAwBRwERZxNMbdkLUfuqqLtYPAeem2C6rXplTMG1M2n28QkQMAEQBEW+T+3AEIPhCQMNqgRd3t9+rLd9VcO+47i/yChEFB84BIF37I2+/P9YqHHnwzOf/QXR3Ua9aIABUejXt412uCx44LfULXh0iBgCi4/bMury+V6Vat9f9zI1/gk/DaoEHXJqycKfz5CfPTPuVV4eonUM6LwHplVnRrqj/M4f/g0/DGgEdbIJ0QU/bSmFRdvoTZ/fYzStExABA1GLxNnEsA0Bwa6xQUFeHaJnYzbHJ/01eylNTkst4lYjaBx8BkG4t2VFY3C9Gjq/7mc//g/iLRhD+FAIAYP0B34ENUkVSRnq6l1eIiCMARM3WNUyK1fPdvwbgoEtFgk0MiZGAv1QL7GDqUFMUuQVAX76biTgCQNQsz67MGXFFL8cvdT/rcQJgfrWKa5dV4rNJkYgyh8ZHsbFqgYvyPcuvG550Gt/VRBwBIDomi0m+tOEdpt5sOeRDVoWCq5dWYuGECNhk44eAxqoFnp1kGcdqgUQMAETNEmMRTtF7ANhWVjtisemQH7esqsZ/xoRBFo0fApqsFrgip2ja2LRpfHcTMQAQNamjTeyh/xEA/5H//rHAiwfX1+DpkWEh0X6NVgvsYb8HK3L3Thub+gLf4UStj3MASHc0TRNyCov9YSaIdZ2/3+/X1zkA6LuwFFW+PweXewbY8M8B9tC5A2G1QCKOABA116yf80+/tpdV1PPd/+4K5S+dPwDM2epClEXEdb2sIdGWdTUC6kJAhFkQpqRYPq1ZlHvKk2enruO7nYgBgOiICJN2YYMRAd2dw9bSpkcsMjY40dEu4qxEc0i0p6Iof64WaJfEC3pbl7NaIBEDANGfxJqlUXoPAL+VNB0AFE3D7auq8f74cIxIMBm+PZuqFnhGmn1L2Wc7Ul65oE8J3/VEDABE6BgmddP/CMDRaxa4FQ3XLKvCZ5Mi0SdKCskQ0DtaDjurR/h2cVF28ktn9/DwnU/EAEAhLEPTxMSiA+F67vwVTcP20mNPWqzyabhqaSW+nBSJLo4QrRaYYOrg9qvbXgJ68t1PxABAISx8Ze4Ue2+HoOcAkFWhwulv3uve71Rx1bIqfDYxIiSqBaqqCgB/CgGndrb0mL8+f/l1w5PG8RNAxABAISrMIp/X8K5Rb3471LJNi7LK/awWmGQZ+8qavI9vPTn5b/wUEDEAUAiKtWKk3gPAsZ7/N4bVAoGpadaLXCtynmG1QCIGAApBHe1ysu5HAEqOr2gRqwXWVgsUf87be/epyawWSMQAQKHixexsS6JDDNNz5+9TgR1lx1+18L1sDzrYRNwdItUCGxYKskgCzkmxPFf5U05hxoS0T/ipIGIAoFDoDPbJU629BF3f/e8o88Orntjf8exWF6JDvFrgBd2sCz3f7Rk986yUtfxkEDEAkMGFW+Qp9X+umzGuJ8c7/N8QqwVK4oU9zcu173elP3Vm9138dBAxAJCBxVkxrP7PRisB3KIO8XC1wPfGh2NkiFYLTAyTzGel2DZXsVog0XHhboCkG+uyC52pEbKt7mefz6e7c5j4bTn+KFMC9veFm4SQqRYIAIIg/CkEAMCGYl/x93tdSawWSMQRADKgjGXbw7qG/6/z1+Pwv0cBssqVgP6dddUCv5gUga6O0CgZ3LBa4LAEU4Jb0VgtkIgBgIwoXHRcbBL+3BHoze+lfvhb4WXvd6q4ell1SFcLHN3J3GPBr3krrx2RPIafFiIGADKQaLt0VsM7Qb0J1PP/xmSV+3HV0kp8FMLVAs9Ktp46d93ej28elchqgUQMAGQUsWZtiN4DQKBWADRlM6sF4vwU00XKmvznbjs56Z/81BAxAJABdA6TO+v9HI6nBHBL/VjgxQO/1mDWqNCsFigKAs5NMd/lWZmXd8+Y5Of5ySFiACAdm/FTQWwXh3Sk6o0eJwDW+DTsrlDa5P/1/i4POtpDu1rgeWmWZ6uX5BU+Mj75Y36CiBgASKfsVv9lkvC/te56HP7fVqZAacPXHerVAsNNgnBRd/OHwvKc/Q+PS/uZnyIiBgDSoSiLOLH+z6GwBXAgZGxwooNNxNlJoVktMM4qipOTrD85WS2QiAGA9CneJg3QewBoi+f/f+kQNQ13rK5GrDV0qwV2dUjms1Ltm2sWZae9dHaPg/w0Ef0PKwFS0NucU+Tp7JDM9b/k9Wb0l2XYU9U+cxfCTQI+nRiJvtGhWy1wyyH/wbXF3qSM01Ld/EQRcQSAdODpVfmdO9kls57v/iu8GvKq2m/iYpVPw9XLQrta4KA4Ob7ap24FqwUSMQCQPpg19VJB5xUAt5X60d6ver9TxdVLq/D5pEhEhnK1wPV5P187PPlUfrL0ZdayrEEmyTzMKmn9bCaxm0UW46wiYqwywi2SIIsCTBogqJrg9Spwe1XN6fRrZU5Fya3x43ePKq+bdnKX5YIgqLyaDACkE7E2/U8A3FqiBMXryKpQcN3yKrw/PhxWKUSrBSZZR89dt+eDm0elXMZPV3B4cV1BV6/LO8pqFgfbZPR0mKVEh4ROURYpKtIi2mOsgmw6/rfrqLr/yCsq1lZl7avaX+Pfc9Ct/KhYzC/dNqRzXihfe84BoKC2aFtBwdAEU5e6n/W4A+CNK6uwKN8bNK9nUqIZr48JgySExsdfkqQ/hQBF07Bwl/uZf45OuZefsNaVsSg7wu6QRpklcaBF0tIjZCnVbhY7hZuFmBiLGBZjEcw2uX3eiIoG5FUqNbsqlV+K/coT94xKWcYAQBREfsvZ5+voEOW6u389TgAc9Xk5CmqUoHpNV/Sw4OmRYSHzPqpfIwAA3IqGD7Ncd94/LvVFfsqOzzJNk9etyBlsN0sjLCL62iUxzW4SEiNMQnyEWQiPscmWSBNEvZxPTpXi/KPEt6hEsN1+34iE/QwARO3o8SXZ3W7sF3Fk/baqqkfqv+tFiVvFwE/KgvK13T3AjrsH2EI2BFR6Ne3DnTUX/fuMbp/x09bI52/x7h4OO4abJHGgQ5J6OCQtyWGW4iPNQnSURbTHWkXJiE+SXH5omw56duS61duMPirAOQAUtGJt1ivq/6zPDYCCN7A8u9WJaIsQstUCI8yCcGFPx8fa8pxxoVYt8P4fd0dGWeXhFk3tb5WEHmEWoVeURe7ikLUYh4zwjnaTxSaH5g2iTYZwSidL31HA0t7bCvZuK/H/37/GpXzHAEDUhsJNyml6DwBbS4N7zkLGBic62UWcmRia1QJjrYJ4dpLtx6pF2emzz+6x2wjn+GJ2tqWyAINtsjwizCKn20Qt1S4LXSLMQnykWQiPsUjmCLMg8hvm6CQAwxJMiYPjTYt6/rZ32263ct69I1NyjXSOfARAQeuH3wv2D4o3daj7WY8TAK9fXoXFBd6gfo1WScD748MxIgSqBQKNFwrKLFeqPs8tS3nuzPTSYH/9z67Y218T/ENtJqG/XRJ62kxCYrhZjIswiZExFsEebRFEUeBXe6BV+jR1RZHv/YLhXa/JMMhyQr5LKGj9kb/fH2sRpLq7fz1OABzyaRmKXcH/XcFqgcFRLTDj+70xtjDf0ChRGmqWhO6yLKRGmIWkMFmMCjNpYR3sssUmheb3tqZpR0YBm/p3Y+3c8N/1t48+HttLfOXrilxnPzChx1q9X1M+AqCgNHt1fr+6zv9oH/Bgtt+p6qLzB2qrBV6zrBJfTopEZ4fxR4ebqhZY6VFarVpgxrLtYQ5z5AgZ6iCbqPS3y0JqmEnqGGEWY6MsQniMRTQ7TIIAmEPu816/I29u597Sv7excFBXJ6IlgSA91hSVEiGvjlm3Z+5No1JuZQAgCjC7pul+AuCWEn2NWOxzqrhyWRU+mxiBqBCtFjimi6XHgvX5q64dnjS6pX/frBW7ewDaEJts6m2X0C/cKqU5JMQ7zIiItcqOOKsgh+KD98Y69EB07oEaUah7H9SFgfo1I5riMAnC1FTbLR225E9cfaBs0DOTBtYwABAFSIxdOFXvAWBbqf4eWWSV+3Hd8ip8ENLVAi2nzF2bt/Dmk5Iv+d/d+44Uh2gfYZUw2G5Bd7skJIebpA6RFjEq0iycaLU63XfwR+vk9XQeiqJAUZQjQeBYIwMnd7J0j7EnFMYu2zts+mmJuttymnMAKCj99EfBwf6xpri6n/U4AfDKpZVYXuTT5fVntUANO8v95VFm0R5jEU3tVa0umO7eAzk0r5sOspmjAoU1ivf7HO+4Byak6GpeAAMABeed6N79SuThpUp6nQA44OMylHr0O1k41KsFhlLn3lQnT80PAiVuTfkq3zn1X6emfa2b9zybloLNU0t2nRxZb52yHr+M8qsVXXf+APBetgcdbFLIVAtsWCjIqHfv7NyP71oqigJVVSFJUqPvkVirIJ2XbP9CXJ1z1n2npC1mACA6DhE2098a+yLTk60liiHaItSrBQZzh2SE5+56DAJ+vx+iKP5p8midGIsgTulq+863fM+EB8cFfxlhBgAKOjFW4RTdB4BSn2HaI9SrBQZDB8+h+eCiqipUVW00LMZaRfGsJPP32pI/ej40vm9QbzfMOQAUdJbtLCjrG22KqvtZjxMAL/mpEqv3GycEWCTg/fERGBnC1QLZuVNjmhoN+KPUX7a5TO1y98mJLo4AEDXvy1HIKSyO0PPdvwZgW4nfUO3iUWrLGn8+KRI9I6VQeB8eeRxwIp17w9+RMUcDNE37y3ulb4wcfcjj+QXAAI4AEDXD7LV5E65Os/5Y/8Olty2Ad1cqGPtVuSHbp4NNxJdnRqCrIzRKBte/uwv1JXHUjDvqRh4JfLzbNfu2k1Pu4wgA0TFEQriw4R2V3mwtVQzbPgdcKq5eVh1S1QLrKsURHUtjk0gnJdnueeyHHQsfntRnIwMA0VFEWbVRug8AJT5Dt1GoVQskamkIqF9YKsIE8ZSkyO8AJDAAEB1FJ4cpTe8B4LcSxfDttL7Yh5tWVuONsWGQRYYAovrqHlvWhYB+MVL8a7/mP3fTiKR/BtPr5CeXgsZHmiaNKDrgqyu7qscKgIqmoc/CMjj9ofFM+LLuFsweFcY3L1Fjd9j1HgeUuFX18zy564Nj4vdxBICogb0rcyeP7e0Q9Hz3v6tCDZnOHwA+2OVBR7uEe0KkWiBRS9SfExBrFcVUh/tTACczABA1EGGTz6//sz63APaFXLs9t9WJmBCqFkjUEvULS53SyTxq9sqcAfeOSdvKAEBUT4xZGKH3ALCtVAnJtgu1aoFEzVW/poRVgpASbvovgIHB8No4B4CCxprMwupuUbKj7mc9VgCc8l0FthisCFBzhVq1QKKWqFsZ4FE0vPVHTa+MCd2yOAJABODF7GxLV4fk0PPdv18DdpT7Q7YNPQpw7bIqfDoxEn2jJb6piepRFAWCIMAiCUiNNL0EYBIDABEA/z55qqXX/wak9BgAdpb54VFCux2rfBquWVaJLyZFootD5BubqEEIkGUZg+NM41/Mzrbc0aOHhwGAQl6EVTqn/s96rL4WqkP/De1zqrhqWVXIVAskai5N06CqKjrYRQnZ5vsBPMYAQCEv1iwMa/hB0ZutDABHZJX7ceWSSnx0RgTsMkMAUf1RAFEUkRwuXtveAYCfTAoK63YVOlPD5SOLyfU4AfCsRRXYVsoQUN/Ermb8Z2wYJIFfNUR1RFGEF5L22iZ37FNTkss4AkAhK2PZ9rCuYf/r/PU4/O9RgB1l7PwbWlzgxd1ravD8KWG82yCq9x1nlUWhS7R6J4AMBgAKWRGi4xJTvd5Bj8P/28v88HNH2EZ9mutBUjirBRI1DAEd7PL5DAAU0qJsOLv+z/rcAIh3/0fz3FYnoi0Crme1QKIjASAlTOzdnq+BAYDaXaxFHKz3AMAJgMeWsaEGHWwiJiexWiARAHRxCJaMn7LSMib0zGEAoJDUNUzurPdz4AhAM+54NOC2VVWIPD0CozuyWiCRpqoIM0kXA3iKAYBCzjPLiuI6OUTLkU5ChxMAa3wadleqbMxm8KnADSur8ekZEawWSATAYZZOZQCgkCSbvJdKwv8mh+l1AqCicQZgc1V5VVy9rBJfslogEWyKu93mATAAULuKtODM+j/rcwtgDv+31H6nikt/qsQXkyIQa2UIoNAVLiuxAEwA2rz4CQMAtasEm6m/3gPA1lKFDXkccqsUXLOsitUCKaR1CrM4AEQBOMgAQCGls13oqOfOH+AKgBOxpcSPW1dV4z9jwiCLDAEUgt+BERbZEhER6amsZACg0PHsmr1dOjkks54DQJVPQ24lRwBOxI8FXtyzltUCKTTJooCEboM67928chcDAIXOGx/K5fW/8PW6/p/T/07cp7kedHGIuG+QnReDQk7Xnr077N280gbAxQBAISHaLE6AzgMA1/8Hzou/u+AwCbg1nSWDKbSExXWIBGBnAKCQEWcV+zEAUH0zNzthkQT8ozdLBlPoULw+/+EAUMIAQCGha5iUoOfOvzYA8Pl/oGVsqEGxS8EDgx28GBQS/F63D4Clrf+/DADUPnd6y3Z1T7CJsp4DQKlHRUENA0BreHW7G04/kDHUztUBdIRXBfY5VRTVKCisUTEx0YwIk/7fH+6aKi8DAIWMCLN0Rf2f9Tn8z86/NS3IdCOnUsHcU8MRaWYICAUVXg15VQqK3SoOODXkVfuRX62i2KVhv1NBYY12pOrmpEQzLkqz6P6cNQDZa5YXMQBQ6AQAq3Sa3gMA1/+3vpX7fJj8XTnmnhqO/jH8utJ7577PWTtqVlSj1v7jVFFYo2KfU8U+pwJfM7fUsMkCHh1mjBUjFW6fVla02w1AACABaLM7C36iqF10sIp9dB8AShkA2sKeKhXnfV+Bfw2244Y+NtYKCEIeBSisUWqH550qCqoVFDnVwz9rKKxRUOML3Gf8rv42dHUYYzOp4hpv/RLADABkfInhUpyeO38A2HKIAaCteFXgsY1OfL/Xh6dHOtAjkjsJtvXd+9GG5gtqVKht9DFOi5BwQx/jLBXdX+WtaBAA2gwDALW52St3DoixiKKeA0CxS8UBF7cAbmu/Fvtw5qJy3JZuw83pNlgljgecqDKPhiJn7bB8QU3tUHzt8HztnfsBlwa/GhyfUQHA0yMdMBto/6ii0op9DU6RAYCMyy7aLqv/M9f/U0t4FGDOVhc+2O3BvwbZcX6KBVwo0Di3oqGgum4ovnbmfJFTQ9Hh4fqCGhUuv34+f1NTLTipg8lQbVRYXLqrvf7fDADU5qLtGKv/AMAVAO1+51Sj4o7V1ZjzmxO3pNtxSTdzyC0ZrBuaz69WUexWsd+p/Glofm+1aphS1eFmEQ8NMV6p6N07M1fX/zpkACDDemhRdrekMP1vAfxbiY+NGSTyqlXc/0s1Xtku4coeFlza3YIYi/7HiEvctRPqimpUFB7+d/1JdsWu/y2JCwX3D7QhwSYa6pyqvIr24/yn6geANn2uyABAbeKJFdlXpEdaMwbHm7rb6u39rtstgEs5AhBs8qsVzNjsxDO/OTEp0YLzUsw4rbMZliCcL+j0ayioVrDPVTccrx1ZHrfv8NI4t8JtpuoMiJFwVU+L4c5ra1FluavkT88T2/SLhQGAWs0tH20P69fFMWtAvOXyHpFiZGN/Ro8BoKBGQYmbEwCDlVcFvs7z4Os8D8JNAsZ0MmFcZzPGdDKhi6P17yD9GrCv3jP2fXV38TXqkaVy5V527s0lCsDMkWGQBOM93vkjv3hz/a9DAG06uYgBgAJ/t79457DucY45g+Lk0dH1ZvsbJQBs5fN/3ajyafg234tv870AgI52EYNjZQyKk9EtQkKPSAlJYRJMLcgFB93an8rRFtb8b5JdQbWKg+62WxIXCq7sYcXAWGN2VevWLP+4fnZt6/8/585SwMxbl39rcpj4rwFxpq7NXZ3l9/t1FwJmbnbile0uNriBxFhExFkFRFlEWCTAIQvQUDtUr2m1+z6UuDWUetRmV6ujExdvE7H8nChDloLOPFTjHT+o18n18yqALI4AkG7c8m1ux/Ro4dkRHcwXJIVJLX5IxyWAFAxKPSpKPUAbP4KlY3hoiN2w+0Cs3XVgQ4NftfldBQMAHZcnf9w9uXus5bFhCfLgMNPxPZzTY+evgXsAELWFkQkmXJBqMeS5KaqGxd9+83qDXzsZAChoZSzT5BhT/gPpsfLt/WLkuBPuTHUYAHIrFVT6+ICXqFU7JlHAEyMchn1GvSavtHTl/Fm/MwBQ8N/tL8vvlxQuvDAkbv/YOJs1IIuqNE2DqurvYSrv/ola3419LOgTZdz9HpZs+P2DBr9SAbgZAChozDRt8kMAACAASURBVPk5//pukcL0IXGm7pYA1VxXVRWqqup2/f9v3AGQqFV1doi4s5/dsOeXecjpee+Bm99p8OtqoO2LNjIA0J/c83VmXPdYywuD4k0XpEXI1kD9vYqi6PKO/y8BgEsAiVrVY8MccJiMu0Dty3W/f+JyVTb8Iilvj9fCAEAAgOlL947tG67OHtXJOjTChIBUS9E0DYqi6PZuvyGvyhLARK1pXGcTzkw0G/juv8Yz/+HbX2nkUAUDALWpv32kSad23PNgjxj55oFxpo6BqrSl92H+pmw65IeHAwBErcIqCZgxIszQ5/ju4l9frSoubFjwx4l2KALEABCi7v16d4/eCfLLQ+P3n97JYQ/Ie6BuUp8Rhvmbsno/7/6JWsud/W1IChMNe36r9pSVzr/vqvcaOVTWXq+JASCEPLo897K+UaZHRiTIvayc1Ndii/d6+SYiagWp4RL+r6/NsOfnVTT895OvH2rs3glACQMAtYr7vtwZnhJnfbpPrHx532hTZKD+XlVVoSihMx5eWKPijzKuACBqDTNHOmA27s0/Fm7MW//t8w/82sTdf7sNLTIAGFTG4p3DkqNsz47sYDkl1ioEbFKf0Yf5m/J1ngcs/0MUeOenmDG6o8mw57e3wuOf+/i905s4XNyer40BwGhJ+uc9t/SLlB8YmmDqEqBR/pAa5m/KpzkevrmIAizcLOLfQx2GPscFSzbMy9+8trFlfjWH/2EAoOP39LqCrgmi8vzAONM5XRxSQNbQhPLdfkNbS/zYUc7p/0SBdt9AGzrYjDv2v2xXyYF5d1wyv4nDRe39+hgAdGzGst1TUiLMM0Z1NPVzyIGpnGG0tfuBMD/TzYtAFGD9Y2Rc3dNi2POr8SpY8P6H9zdxuApAJQMAtUjG9u1mR6nj4YEx8i0D40zRgfp7Q21SX3Mdcqv4Ko/D/0SBJArAkyMcCFTtkWD0/i/Zy5e8PvP3Jg4XBMNrZADQiaeW5gzsGiE/PzjMNCYuTuSkvjby5k43i/8QBdjl3a0YEmfc7mfnwRrvi/ff8u8mDpeiHXb+YwDQoTk/51+fGo5/D+9gTjGLXLvflko9Kof/iQIs2iLgvkHGXfOvAXjn+9XPleVnuRo5rATL3T8DQJD61zd50Z2itNnDOpgv7x4hBeyTYpQNedrKS7+7UO1jSCIKpIeHOhBjMe7Ev0U7D+x5Z/r1HzdxuAjtuO6fASCIPb4kZ2LPaPPMIfHy4AizwEl97WhPlYp3snj3TxRIIxJMuCjNuBP/Ktx+7c3XXr2vicNOAAeD6fUyALSzjGWaHCPteaB7tOm2wQmm+EDlYg7zn+BdyoZqPvsnCmRnIwp4YrgDgoHP8Z01md/8+smbOU0czgeCq54YA0A7mblsV/cuDvNLgxIOTOhg44Y8weT7vV4sLeTGP0SBdEMfK/pGS4Y9v60HampevO1vTzRx+CDauegPA0AQmLUy/9qeUcKDg+NM3bkhT/Ap9aiY/msNLwRRAHV2iLirn3En/qkaMP/LxTNdlZWNjRv6EQRFfxgA2sn9P+6O7B4uz0qPlq/oFiUHrO4l1+4H3r9+qcFBF0dQiALp0WEOOEzGHfz/bMvenR8/dvv3TRwuOBwCGABCyRPLdg/r4pCfHdXRckqMhRvyBLsFmW4syueWv0SBNLaTCWclmg17fsU1XvXVZ2bc3cTharTjdr8MAG1N04RZK/Pv7x8r3jkwztQxUJWuOMzfuraU+PHYRg79EwWSVRIwc2SYoc/xnZXbP8ha8XVju/ppqJ34F7QEvkUD46lVu5M6mk3PD4yTJ3fmhjy6ss+p4tzvK7DPyetMFEjTBtpwV3+7Yc9v3d6KysvGD5/gczb65bEfQGEwv36OAJygGUtzzk2JND0xqqO5n0MG1+7rTJVXxTXLKtn5EwVYariEm/sat/P3Khre/OirB5vo/L0A9gX7OTAAHE+q/WG/IzXMPat/vPmKXpFSZKD+Xk7qa1suv4a/r6jGH2W85kQBvzka4YDFuKv+8MmmvI3fPTd9bROH9wII+rsKBoAWmLliz+AuDuGZoXHauDibjZP69JzeVeD/fq7CmgNc708UaOelWHBqJ5Nhz29vhcf/8mPTm9rqtxJAuR7OgwGgGeauzb85OVx8YGCcqascoFkTnNTXfmp8Gm5YWYWV+9j5EwVauFnEw0Pthj7H+T+t/0/+5p8b6+RVBPnEPwaAZrjps10J/TvKz4/oYJ6aFCZZebdvDGUeDdcur8TGg35eDKJWMG2ADR1sxt3s5+c95Ydev/PSN5s4vB+AhwFAp2as2H12rwjTjCEJ5gF2mRvyGElmuYLrl1cir5oBjKg1pEfLuKancTf7qfEqmDf/nWlNHPYcDgC6wQAAbsgTChYXeHHnmhpUedn5E7UGUaid+CeLxl1d/uGGPSuWvznr9yYO5yHINvthADhax78yr2+aXXxpUOz+sR3s9oDMV+Uwf3BxKxqe3OTEgkw3GMOIWs+l3SwYGm/cLiWrxOV9ftoNDzVxuBRAld7OKSQDwBNLcv7WL1aeNayDOcUkslKfUf1W4seda6qxq4LL/IhaU4xFxPTBDsOenwZg/rcrny3Lz3I1clhBbb1/3QmpADBzWc5tQxJMGQPjzLGBGqTi2v3gU+XTMGuLE+9keaAwkBG1ugeH2BBtMe7Q//c7DuT/94G/f9LE4SIAulxSFBIBYMaK3WcPibO+OThO7hiQNMhJfUHJr2r4OMeL2b85Ucwd/YjaxPAEEy7uZjXs+ZW7/dpr815tauKfC8BBvZ6boQPAtB92JQyONf1wWlfrICkA4ZTD/MFJ1YBv8z2Ys9XF4X6ituxARAEzRzgMvanMu2uzFm385M2cJg7rbuJfSASAl9fueWBsJ+ujCTbhhM6Rk/qCl1vR8NFuD17f4cKeKrYPUVv7e28rekcZt97vtgPVzhfuuuzxJg4fBKDrLUQNFwBuWVYcNjrCs3p8V/MA3u0bU361inezXfhwlxelHnb8RO0hwSbirn7GHfpXNWD+10tnukpKGqsa5kfts39dM1QAeHTx7vGTuvq/To0w206k4+ekvuD8MC4v8mFBlgvLi3xQmcuI2tXjwx0INxu34t/nWwszP8q45bsmDhccDgEMAMHguVW5d01Jsc+JMKHF70hO6gteVT4NX+3x4o2dLmTz+T5RUBjb2YzJSWbDnt9Bp0+d++xTTU38qwZQYoTzNEQAeOHnPW9d2M16namFXT+H+YPX76V+/Dfbjc9zvXD62T5EwcIsAo8PM/ZmP2+v2Lpw55LP9zV2vwgdbfZj+ADw5i+5P0xJsU1kx69/XhX4Nt+LBZkubtZDFKRu62dDWoRxJ/79urei8pU7L3uuicPFqF36xwDQ7iltfd6PZyZZJzT3z3OoPzgVu1R8kuPF/EwX9jk5qY8oWKWEi7g13bh3/z5FxfxPv3nE52z0i8gLA0z8M0QAePOXPd+1pPNXFIVL+YKIBmD1fh/eznTjx0If/JzVRxT0nhwRBotxb/7x0ab8zV8/c//PTRzeC8BQnYguA8BLq3LnTk62ndmcP8tZ/cGl2qfhyz21d/s7y9kuRHpxTrIFYzuZDHt+eys9yrwZD93XxOFKAOVGO2fdBYA5q3KmTe1uv0loRukpv9/P4f4gkVWhYEGmG5/lelDtY5sQ6UmYScAjQw0+8W/phjdy1i8va+w+Egaa+Fefrio4Prkke8hFPcPXR5mFo87357P+4KBqwNIiL97c6caqfT5ux0ukU48MdeCGPsYt+vPznrKSy0b3n9TE4SIA+4x43roZAchYlmsd09m8/FidP4f8299Bl4qPc7x4O8uFwhrOuyDSs15REq7rbdzO3+lT8J+332tqzb8HwAGjnrtuAkDPCGl5zyg5nJ1/8Pq12Ie3szxYlO+Bj/0+ke4JAJ4eGQbZwLv9fLg+9+el/3lqWxOHDTfxT3cBYM7K3GvHdbGMPNqf4Sz/9uFRgG/yPXj9Dze2l3HtPpGRXNrdgmHxxt00NqfU5Xvp/jsebOJwKYAKI7dv0LdsxqLsiNO6Wl872na+7PzbXm6Vgney3Fi4y4NKTuojMpxoi4Dpg4098W/Bj+uePZi71dlYt4Laev+GFvQBIDXe8mkXh2hh59/+VK127f57u9z4Lt8HhZMsiQzrgcF2xFiMu9nP9zsO7H3rnqs+buJwEQAfA0A7enJZfr8xXSzjm+yQDpf0pdZV6dPwSY4Hb+xwI7+acyyIjG5QrIxLuhl34l+F26+98ebr9zZx2AXgYCi0c1AHgL4xwid2qfGlipzw1/p+K/Hj7Sw3vtzjgYeXmigkyKKAWaPCIBp44t+7a7O+W/fhvF1NHM4DQmPVctAGgBk/ZZ80ooO5V1PH2fm3Dq8KLN7rxXu73Ph5n48XhCjEXNfLgr7Rxq33+0dxjfuVadc93sThQwBqQibsBesL6xlneaOppSd+P2ebB9oBl4r3st14O8uDEjcfqxCFonirgLsHGHfin6oBb33x04zKA4WN3d34ARSGUnsHZQB4fGlOrxEJ5r5N3fmzwl9gaABWFnnxdpYHSwo5qY8o1D023IFwk3HH/r/8vTDrw8duXdTE4YLDIYABoD0lhsnPWxpZ96dpGif9BUCVV8VXeT68udOFrAo+SiEiYEwnE85Jthj2/EqcXu2tl59rauJfNYCSUGvzoAwAA+Pk05q6+6fjt6tCwX+z3fhwtwc1XLtPRIeZReDx4Q5Dn+P8Fds/2vzth40N8Wsw6GY/ugsAz6zcfVNnh/SXGKqqKof+j4NfAxblefB2lge/FHNSHxH91a397OgWYdyJf7/uLa965c5L5jRxuBi1S/8YANpbUrj5Jt79n7iDbg0f7/ZgQZYLRdyQh4iakBwm4rZ0m2HPz6eoePuz7x/xOZ2NfRF6UVv0JyQFXQDoE21KZ+d//LaW+PFWphtf5Hrg54AJER3DY8MdsBj35h+fbNm7+cvZ01Y2cbgABt7sR1cBYM7ynL8l2IS/vCZO/Du6Gp+Gz3I9WJDlRmY5wxIRNc/ZSWaM72I27PntrfQoc5948L4mDlcCKAvl9g+qABBtl67k3X/z5VYp+GCXG+9ne1Du5e0+ETWfTRbw8FCDb/azZOObOeuXN9bJa6jd6jekBVUA6OwQh/Hu/+jqNuR5K9ONnwq8YLdPRMdj2gAbujqMO/a/ek95ybzbL369icP7ALgZAIJIcpjckZ1/4w65VXy424P/ZrlRyEl9RHQCekdJ+Htv42724/KrmPf2+9OaOOwBcIDvgiAKAK+uL+wVYxVFBoA/23TIjwWZbnyT54GXl4OITpAAYMYIB2QD7/bz4a+7Vy/9z4xtTRzeixCe+BeUAcDv9kyp/3I0TQvZdf91G/K8sdOFDQe57wERBc7UVAtGJJgMe345pS7fqw/e8UATh8sAVPBdEGQBINxsGln/51Ds/POrVbyT5caHu9yc1EdEAWeTBUwfbOyJf28tXvf8vuxtje3op4AT/4IzANhNSKn/c6gM/6sasGKfDwsy3VhW5IXKfp+IWsn/9bGhk1007Pl9n3mwYMG0qxY2cbgIAMuhBmUAkBEbSiMAVT4NX+2pHebP5oY8RNTKws0ibuhj3Il/lR6/9tbr85ra7McF4CDfBUE7AiBEhMLd/++lfvw3243Pc71wslQfEbWR63paEGk27sS/99Zk/rBm4WvZTRzOB7hqOmgDgFUWLUa9+/epwLf5XszPdGEjJ/URURuzSDD0sr/txTWul6Zd/2gThw+hdrtfCtYAIAuaZLQAUOxS8UlObce/z8lVJ0TUPs5NtiDWasxn/6oGzP/ip5mVBwobe77vB1DId0CQBwAAolECQFaFgtlbnPix0Ac/Z/URUTu7uqdx7/6/3l6U/eFjty5q4nDh4RBAwRwABAPd/aeFixjX2YyNh/wodjEAEFH76RklY3CcbMhzK3H51LmzZ93dxOFq1A7/U7AHAK8i+AAYIqbKooArelhwQaoZ8zM9eOl3J6p8DAJE1PbOTTZu0Z+3f97+6e9LPtnXyCFu9tOCG+92t3RH4cH0GDlOVVXD7QB4yK3iua0uvJftBif+E1FbWn5OFLpHGm/Tn/UFFVUXnz58vM/Z6ASrAwAK2Po6GQFwq3ACxlz/H2cV8eQIB/7e24qntjjxXT538SOi1pcaLhmy8/cpKt789Ot/N9H5+1C72x/pJQBUu/0HATnJyBc7LULC62PCsaXEjyc21mBdMeemEFHrGdfZmMP/n2zJ/+2b2f9a1cThvagt+0t6CQBOP3IBDA2Fiz4oVsYnEyPx/V4vntrixC5WAiSiVnBqJ+MFgMJqn/LqjEeaqvhXidoNf0hPAaDGr/4O4KJQuvhnJpoxoYsJH+72YM5vThx088EAEQXOUAPO/n9n6ab5ub8sKW3kECf+6TUAaIr/awAZIdcAooAre1hxYaqldsXAdheqvCwaREQnJilMMlzxn1W5ZaWv3HLha00c3gfAzZbXYQC4bUyPTWfs3aeGSxBDsSFssoBb0q34W5oZz21z4f1dHhYRIqLj1j/GWJP/3H4Vr7//0f1NHPagduY/6TEAAEBhtVrSO1KID+UGibeJmDHCgX/0tmLWb058m8cVA0TUcj0ijTX8/8H63DVL5z6+uYnDewFw6FTPAWBfjbKld6R8BpuldsXAa6eGY0tfPx7fWINfuGKAiFogNcI4g6m5ZS7fqw/cNr2Jw2UAKtjiOg8AJV5lviCYGADqGRQr49PDKwZmbnZidyVXDBDRsSWHGecRwFs//PryvuxtNY0cUsCJf8ctqDaH1jRN2Jm/zxcuqRKb5q/8qoaFu72Ys9WJYhdHu4ioaWvOj0ZSmP5HARZnHiy8fvzg85o4XAA++zfGCIAgCNonm/N2jYqXerFpGmmsw3sMnJ9ixrwdbszb4UIN9xggokZEWwTdn0Olx6+98fq8aU0cdgEoZksbJAAAQH6lf+6oeOl5Nk3THCYBdw+w4aqeVjy71YkPuGKAiBrcLISZ9B8A3l+b/eOaha9lN9VdAJwjfUI33cH2gjRNEzfszPV0CjfLbJ7m2V2pYDZXDBDRYXZZQNalMbo+hx2HnO4Lzh43vqqoyNPI4UMA8tjSBhsBEARBfX7x5lUX9Y0fx+Zpnm6HVwys7+XDE5ud2HiQKwaIQplJ54/+NQBvfbV0ZhOdvx9AIVvZgAEAANauWDp9co8L19pMHARoieEJJnwxKRLf5dfuMZDDFQNEofnFLhrg+X91dU0ThwoPhwA60RvuIH1djnmLf906uW/nNDbR8fFrwHvZbjy/zYWDXDFAFFIcJgGZl+j7EcCiHQcKbzxjaMPZ/zUAdrKFjR0AhMm3//u6l6fd8KZJEtlKJ8Dp17CAewwQhRRRAPKviNX3TYyq4toZr9+0/LUnNhz+lXa483eyhY0dAACg+7wffv1+cnrnbmymE1fsUjFnqxMLd3u5YoAoBGReEgOHzlcCfPZ7UfYdZ4647PCPB1C77p9CIABEn37tXVNef+Sf71hNrAsUKNkVCp7a4sQPe728GEQG9vN5UUgN1/d3p9uv4rJ/PXnp+g/n7QCwHbWV/ygEAoAIYMCsL36ee/mw1FFsqsDadMiPJzc58UuxjxeDyIA+nRiJkQn6n0j93oY9W+8/f/Q41Nb8pxAJAACQnNinf/IHCz/9KSXGbmJzBZYGYFG+F09tdiK3isGayEheOCUMF6ZadH8eTkXT5m119p1zTi9O/guwYI+HpXt3bItb8P2qFx++7Ix7REFgiwU4/U1OMmNSohnvZtWuGDjk5kRBIiPILjdGqI+wmIRBnWxvABjNVg2tEQAA6AvA9tK3axdMHZjYj03Wikn78IqBF393opp7DBDp2pmJZrwxNlz35yFJEmr8gvZunrdrxuikIrZsaAWAaABpnXum295d+OninvFhNjZb6zrgUjHnt9oVA4rGIECkR4lhEtaeH6X/TkoQIMsyvslzfff3ESlns2VDKwAcGQWYfOvDI2b/87pXIqwmPgtoA1nlfszc4sKPBVwxQKRHGy+MRgeb/mupyLKMEremzvmtIuqt83pXsWVDKwBEA0gDgOtnv335w5ecdrcsskBQW9l0yI8nNjnxK1cMEOnKvDHhmJxkNswowOe5ng9uGpV0OVs2tALAkVEAAHjsw5+evH5070lsvrajAfg2z4unttRgTxUnChLpwTU9rXhyhMMQ5yLLMvY5Nd/c0kLH68OG8W4kxAKAA0Cvutf8zGcrX710RNoINmHb8mvAwl0ePLPVyT0GiIJcF4eIX6ZGG6OzOjwK8GFWzSt3npp2G1s3tAIAACQCSAAAk8kkzPls+YILBiensxnbXpVXxdw/3PjPTjdcfk4UJApWS6ZEoVeUMaqpyrKMPdWqe1S3TnYIAr94QiwAiADSAZjrQsAzny5/6cIhyawU2E4OuFQ8yz0GiILWPwfYcc8AYyyeEkURkiThvWznY3ePTn2ErRtaAQAAIgF0r/+Lxz74ccZ1p/aZyKUB7WdXhYJntjrxTR5XDBAFk8QwCWvOj4JRvh9lWUZmhVo5tlfnSLZu6AUAAOgCoGP9X9z92qe33TRp2LV2bhzUrtYV+/HExhpsKfHzYhAFic8nRmB4gjGqqdeNArydWXPHfWPSXmLrhl4AEA6PAkTU/+Xf7nv6pLuuuuDZ5Ggb9w1oZz8VepGxgSsGiILB+akWvHxKmGHOx2QyYcsh38FJ6V0T2LqhFwAAQALQG4C1/i+HjJ/a6a6HHp57eo/4rmze9uVTgf9mu/H8VhdKPQwCRO1FFoB1U6PR0W6M+imiKEKUJMzf6bl0+tikhWzh0AsAONz59z4cBv7k3je/vOPasQOvirTKnBrQzqp8Gl753YU3M7ligKi93Jpuw/TBdkONAqw74C04b0BiIls3NAMAANgB9EAjOxuedP6VidfdfPuss9K79GAKaH/7nSqe2+bEh7u4xwBRWws3i/hlahQiDFJJXZIkaIKI13e4z8g4LfkntnBoBgCgtkhQj8ZGAgDgmidem3zF5HH3940Ps7PJ219muYInN9dgaSGLeRG1pemD7bg13Tj7qZlMJvxc5Mm6aHBSL7Zu6AaAo44EAIDdbhdvmP323y8eM+h6ThIMDhsP+vHEZifWc48BojYRbxOx9vwoWCXjjAIoEPDGtvLhGRN7b2ALh24AqAsB3XC4UFBjYjonW+6Y/ea/LhrZfUoU5we0O+4xQNS2nhzhwDU9rYYaBfipwLfpiqFdh7J1QzsA4PAIQCoaLBFsaOBpZ8Zde+dDj0wZmHiSjbUD2h33GCBqG10cIlafHw2j3P5IkgSPKmivbKrpNfucbtls4dAOAHXn1RkNigU15tTLb+1xydXXPDqlb8ee3GK4/dX4NMzb4cKr291wK5woSNQaXjwlDBekWozxZX94k6BF+a4V1w1PGcfWZQCoEw0gGU1MDqzv3LtmjLjionMfPiUlqiPfFu2PKwaIWk+PSAlLpkRBNNAoQJVfUF/Z5Oz8wnlpB9jCDAB1TKgtHRzbnD98w6y3zr9o/Mn/TO8Q5uDbo/1lVyiYwz0GiALurXHhmNjVbKhRgC9zPV/dOCrpPLYuA0BD4QCS0KByYGPsdrt4y/Pv337hyemXJUbZZL5N2t/q/T48ttGJ7WXcY4AoEAbHyfj6TOPspyPLMordmvJOphD5zKSONWxhBoCGRNTOC+hw+L+PiisGgouqAZ/v8eDxjU4ccnOiINGJ+uiMCJzcwRiroutGAT7Z7Xzn1pNTr2HrMgA0xYTaSYKxzbkGQyZMjrvmzumPTu6fONIqc8VAeyv1qHhovRNf7fHwYhCdgDGdTHh/fIShRgEKnZr3qQ0d7R9fLChsYQaAo7EeDgLRzfnD46+5q/dlV17x+MTenVJFjge0u2/yvJj+azXKPJwkSHS8Fp0dhQExxrixqRsFWLjb/fwdJyf/k63LANAcDgBdATRrv8xz/vnEyCsuOPffo1NjuGKgnRXVqLh5VRU2HuTcAKLjcXaSGa+PCTfUKMDuSsV9So/OdggC7w4YAJotEkAigGYtkL15zoILLzz9pDt6xzu4YqAd+VTg3+tr8G62mxeDqIVEAVg6JQrdI40xCiCKIiRJwjtZrofuPTXlSbYwA0BLr0ksah8NHHN2jN1uF6+b/e5Nl4/pfxX3GGhfb2W6kbGhBiozP1GLXNzNgmdPCjPM+ciyjO1lasX4Pp2j2LoMAMcVJAEkoHbVwDGjcaeefe23Pvbi9POHdT+TKwbaz1d7PLhjdTX8DAFEze8wBWD1+dHo4jBGNdS6UYC3Mp03Tx+T+hpbmAHgeLVoxcDA086Mu+quhx4/b0DicO4x0D6WFHpxw4oqeLlSkKjZru9lxWPDjfM002QyYdNBX/FZ/bp2YOsyAJyo41oxMKlPp1Re5La3uMCLG1dWw8/nAUTNYpMFrDs/CrFW44wCiJKEt7a7Lnzg9JTP2MIMAIHAFQM68VmuB3eurgYjAFHz3NnfhnsH2g01CrBmnzdv6qDEFLYuA0AgtXjFwAWnjbqzT0KYnZeu7bywzYXZvzl5IYiaIcIk4JepUQg3G2MUQJIkqIKIV353nT5jQsoytjADQKCvH1cMBDENwK2rqlk1kKiZHhhsxy3pNkONAqwo8v5x8eDEdLYuA0Br4IqBIFbj03DuDxXILGdlUKJjibcKWDc1BhaDzGGWJAleTcC8P8oHzpjQeytbmAGg1cImuGIgKGVXKDhrUQXcCmcEEB3LzBEOXNXTaohzqSsPvLjAs/6qoUkj2LoMAK2tRSsGRl95e89Lr7wq45z0Tj0lgU3SWuZnuvHv9dwllOhYksIkrDw3ErJBNj2RJAlORdDeynOmPnlKWh5bmAGgLbRoxcDF/5o15uJzzpw+Kjkmnpcu8DQAl/5UidX7fbwYRMfw0uhwTE0xG2oUYFG+e8l1w5MnsHUZANpSi1YMXDdrwcWXym4QqwAAIABJREFUjh91e3qHMBsvXWDlVimY8E05PJwOQHRUPaNk/DQ5EkbZ+VSSJFT5BXV+ZlnCzAl9StjCDABtfa1btGLg1hc+uOOCk9IvTYyyyrx8gTP7Nyde2ObihSA6hvnjwnFGV2ONAnyR4/rs/05KuZCtywDQHlq0YiC6c5rttqdevf+Sk3tP5oqBwHD6NZzyRRkOujkhkOhoBsfJ+PrMSMOcjyzLKHZD+eyQGpExrHPIFwhhh9J+WrRioN+ECzpec9u0R88f2GUoVwycuLez3HjwV04IJDqWTyZGYlSCMQYh60YBPtrtefP2k5P+wQBA7a1FKwbOuO7uPpdcftlj3GPgxPg1YPQX5Sio4WQAoqMZ29mM904PN9QowN5qxTtrU2f7xxcLIf0FwD4keLRoxcCUux4fdeWF5z3EPQaO35s73XhkA0cBiI5l0dlRGBBjjJHHulGAd7Ocs+45NfV+BgAKJi1aMfCPZ9657JLTR9zSJ4ErBlrK6dcw4rMylHs5F4DoaCYnmTFvjLFGAbIq1JoxvTqHhXK7MgAEb7u0eI+By07td3VKjJ0rBlrgsY1OvL6DKwKIjkYUgJ8mR6JnlDG+XkRRhCRJeCfbdd+9o1NmMwBQUL5PwRUDrWpXhYJxX5fzQhAdw6XdrXhmlMMw52MymbDtkK9sQnrXGAYACur3Klqyx8D4qZ2uvevex88dkDjIIrGJj+W8Hyqw8aCfF4LoaF9CIrD6vGh0dhhjq+C6UYDXtrn+8ciElDcZACjYHdceA+emd+4psqWb9J8dbjy6kZMBiY7lH72tyBhmrFGA9cW+fVP6d+3MAEB60aIVA+dOm3nSZedNefjU1GjuMdCIvdUKTv6iHJwKSHR0NlnAuvOjEGs1ziiAIEmYt61qasaE7l8wAJCecMVAgEz8thx/lLEmANGx3NXfjmkDjfMVYjKZsGqfJ/fCQUlpDACkxzZs+YqBMf2vTom2ccXAYY9urMF/drh5IYiOdddhFvDL1GiEmYyzVbAiiHhla9nomRN7r2YAID3iioET8GOBF9ctr+K7iKgZHhpix019jTUKsHSv5/fLhiX1ZwAgXb+X0cIVA9fccc/j5w5MGmSVxZC9aJU+DekLSzkPgKgZEmwi1p4fDYtBtiWRJAkeTdTmbXP2nTkpdScDAOmdDUAX1M4TOKYxV9zZ65JrrnrknD4dQ3bFwMlflCG/WuU7h6gZnh4Zhit6WAxxLnXlgX/Id6+9enjyyQwAZBTHsWLg3IdPTY0MuRUDN6yownd7vXzHEDVDUpiIledGQRaNMxegRhG0+burk58c230vAwAZSYtWDNww57+XX3z6iJv7xDtCZsXAnK0uPLfVyXcKUTO9fEoYzk811ijA13vci/8xMnkSAwAZsb2bvWLAZouQrn9mwf9dNmbA1SnRVsOvGFi424171rIgEFFz9YmSsHhKlGE6ElmWUeqF+tLW4ri5UwaUMQCQEbVwxUA3662zXnvo0lE9Jhl5xcCaAz5c/GMl3x1ELfD2aeEY38VsqFGAz3M9C28alXQpAwAZWctWDEy8qNM1t971+HmDkg25x0B+tYqTvyjju4KoBYbFy/hiUqRhzkeWZRQ5Nf/8ndVhL53dw8MAQEbXsj0Grriz16VXXfGI0fYYcCsaun9QyncDUQt9OjESIxOM8ZSwbhRgYbZz3h2jU29iAKBQ0cIVA08f3mPAOCsG+nxUhiovlwIStcS4zia8e3qEoUYB9larnlmbOjk+vlgwbI1wBgBqTDRqawg0a3rvtU+/fcllZ4y6LT1B/ysGxnxVjpxK7glA1FKLzorEgFhjjALUbRX87i7Xk/eckvIQAwCFGgFAPIBOAI75qbbbI8SbX/7gnlvGD7hEz/MDLlxcgV+K/Wx9ohY6J9mCuaeGGeZ8ZFlGZoVaNbZX5wijthkDAB0zDKN2tUCHw/99VCu37lqTFmPV7ZTgW1ZV46s9HrY6UQtJgoBl50QiLcIY9YHrRgH+u8N597Rxqc8Zsc24GxwdiwqgCMBBNGPFQInT49ZzAIi3MhMTHQ9F0zD3DxdmjzLGKICqqpAkCf3j5QcBMABQSPMByANwAEdZMVBW460CoNshswSbyJYmOk4f7/bgrv52dHEY43OkKAoGxZljH12Sc9Uj49P+ywBAoc4NIAdAOGpXDNjrH6x0uctQO4FQpyMADABEx8uvAW/sdOGRoQ5DjQIMiTfPBMAAQHRYFYAdaLBioNLlPqTnk+IIANGJeS/bg9v72RBjMc4owNAEuUvGkpyJGePTFjMAEP1PGYBy1M4N6FJR7Tyg55OJt3EOANGJcPo1LMj04O4BxthHTFVVmCQJ/WJNLwPoyQBA9GcagEMAyiz28BxdjwDwEQDRCXtrpws39rEizGSMQK2qKkZ1MPV4cFHuqCfPTl3HAED0V0pMx8RMk8kEv98PTdN0dwKxVhGyKMCvamxNouNU7tXw/i43buxjjFEARVFgMpmQ3lGeC2AwAwBRI3yK8rueX78oADEWAcUuBgCiEzF3uwvX9LTBYoyyAFBVFSd3MA+c/tPunjMndMtiACBqoFuHbttUFEMQBF2OAAC1EwGLXdwPgOhEHHRr+DTXg8u7WwxxPqqqwiaLQq9w+U0ApxrhnDjjiQIuq+CAEiYqoqrqsxO9amkllhX52JBEJygpTMTKc6MgG2TbUEmSUK2I6nO/Obu8Ojl1P0cAiBqo8CjecLtg1evr72CXUFv3iIhORH61ikX5XpybYpxRgAiTKA6KE98AMIUBgKiBKq/mhI4DAMsBEwXOy9tdOCfFYojhZk3ToGkaTulgPuuKd7Mj3ruyRyUDAFE91T6tUhCEGL2+fhYD0oc4q4jeURJ6REro6hDR0V77j10WEGn+cxt6FQ3lXg0VXhX7nRr2VivYW6NiR5kfOVUqV320oj/KFCwr9OH0LiZDnI+iKIizyeJJafLc94ArGACI6nH5UQIgRb8jAAwAwahnpITRHU0YkWDCiAQ5YEHNrWjYUaZgc4kfmw76sOmQgvxqhRc8wKMARgkAdaMAJ3W0/u3GDRuufX3YMN0+L2QAoMAHAEXZLwj6/bCzGmBwEAAMSzDh3GQzJnQxITGsddaTWSUBg+NkDI6TcX2v2idXB10qNh3yH/nntxI/nH6OEhyvX4t9+KXYh5EJxhkF6OqQTen74uYAuIMBgKguAPjUAj2/fj4CaP/rf2UPKy5KMyMprH0WkcfbRExKNGNSYu3O1n5VQ2aFgo0H/dh8OBTkVCpgJGi+V7a7DBMA6kYBhsWbboCm3QlB0OVbgQGAAs6tCrsA6LYWAMsBt4++0RJu6WvD5GQLTEHWBLIoID1aRnq0jKsPV4Mv92rYdNBf++jgUO3jgyofI0FTlhX6sL3Mj/RoY3Q7qqqie6RsfWbFnn9PAx5jACAC4FexQ8+v32ES4DAJqOGXeZvoHSXhnoF2nJlo1tVM8SizgNO7mI4821Y1YFelgk0Hfdh4SMGmQz5kVyjg/MLDd80AXtnuxqujwwwTAERRxJAO5nvAAEBUS7Satur9HOKtDACtLdoi4J8D7LimpwWSoP95F6JQO1GxZ6SES7vX/q7Gp+GPMj+2lSn4tdiHtQf8KHGHbpXJb/O8yB2oIDXcGPWBVVVFeowc8eSKPdc/ODblLb29fs52olaRX7Rfk6FCr9UAL1hciV+LWQyotb50ruhhxYND7Aj///buPLyJcn0f+D3ZmqRNU0r3DSi0gKyyCVIRBEVxPfpFUFQEj+vxeMQDPz0KgqKiiB6UxV1EcEXxKCCgICKLIovsa6G0tKX73qRNZia/P5JCxUADNGkmuT/Xlas2neJ0Msk888z73qMNvo+gY1USdpQ4xxJsLxFxsEIKqmmId3YIwcz+YQHz92i1Wmw+acv+W8/ktiwAiADsyS6wR+kcGklS5nSqB3+pxoocG1/IZpYcpsas/qEYGKflxnCxiA7sLpOwo1jE9hI7dhTbUVwXuAWBTgVsvqUV4oyBMdZGpVJBElR466Ct20tDUhR1MzReAiCvqKyX66N0gmL3L84EaH7Dk3V4fUAYzDqedzRm1AjoH6NB/xgNAOc0xCKrjN1lIn4vsmNbsYRdpXbUB0g0gU0G3jtYhym9jAHx98iyDJ1WjdRQzAQwggUA8axGdNQIgiqUBQBpVAKe7W08NceePNv/hiXqMCzROQ2xXgL2lInYUWI/lU2QX6vcsQSLj9Thn10NiAiQYlCWZXQ0qwYr7r3Jtxp5Q7VdLgfUsUpd/yjeD6BZhGkFzMsIw1DXgYwuTIga6BOtQZ/o0x/ZDV2C3aUithaL2FYswqqQsKJauwMLDloxoXtgdAEkSUJahNYwbe2xa6YNTf2BBQAFtTrRUSIoeGR3rEHNF/EiJYSqsPiqcKSbuS190SUQHcC+stOZBNtLROTU+G+X4MNDdXigswGhATIQ1CHLSDSqJgBgAUDBzWpHnpLXn3HAFyc9QoPFQ0xICOWlFJ99mAtAj9Ya9GitwTjX5ZZquwM7S0RsLbZjT5lzKmKlzT+6BOX1DnyaWY/7OwfGpSFJkpASrumnqH2GbxvyhnqHI1vpZ1d0YXpFabBwSDhahbCIamkmrYAr4rW4It4560JyOHC0UjqVS7C1SERmVcuFFb1zwIp7O+r9LvnxQrUPFyJHfrnNvOT2PpUsACh4OwB10hFAuXHArUMEqAQwxe08XZusw7wME0LY9fdLakFAeoQG6REa3NYuBABQaXOcvvFRsXOQoa8ijQssMr46Vo87OoQExPY1qIBuka3GLAHmswCgoGWTVPuUvP4alYDIEBVKgji17XyNah+CVy4LhYbNE0Ux6wQMSdBiSIIWgAEAkFMjY2ux/dQAw31lEiQvFfJz91pwe3tdQKRBOhwOmPXCVWABQEFdAFhLdjmQrNgOAADEGASU1PG19MQjXfR4+tJQbogAkRKmQkpYyKkuwZmRxr8Vis1WHGfXyPg+x4Yb2wRGFyBCK3RVyrryIh15TWZuoWRUSSqlxgGPWVuF9ScZB3wuakHAy5eFBkwLlzyXVS25Lhs4Lx8cuIhI466RGqwcYQ6IA9L2kzU1N/ftZGIHgIJalU22hxoExR4ZOBDw3HQqYE5GGK5P4Rz/YNTOpEY7k/pUl8AqOrC3zNkl2F0qYkuRiBM1nsUX7i0TsT7fjsEJyo+IjjWojQDCANSwAKCgVWmTrPEGNQuAAGTWCVgw2IR+Mcz0JyeDRkDfGC36NtonzifSeM5eCwYnmBW/HeJMIaq4gcPbFGxa7ffjoFgAkNfU2oUqQRAilLr+0SwA3EoMVWHREBPSI/jxQU0X0Y3DimwysKdUPDXrYHuJ/VSk8ZYiEVuL7H8qIJRIo1bhkp6X92IBQEFeAIhlgDpFsR9ejAP+i44RanxyVXjA3MmNfEunAnpHa9C7UaRxoVV2FgPFIn4rEhVfAACAwWiIdR1fRRYAFJTqJBQpOQ44xsjJ7I0x4Ie8IdagwnXJOlyXHDhjSYyhpggAoQD8OhCIBQB5rwNQL51Q8vpHswNwynXJOsxlwA+RR/R6YzgLAApqIlTHlLz+HAToNLqDHi/3MzLgh8hDsixLAPz+VocsAMhrJKgPAsqNAzZpBRg0gmJuseoNDPghOn92SaoH4PczoFgAkBffBNij9L8hWq9CjodzmQOJRiVgRj8G/BBd0MmPJNYD8PtBDSwAyGsmDUrKzCssgkrhccA5NcH1ujHgh+jilBbmFwFQAdAC8Ns4URYA5DWCIDj2ZxdIrXSCYoeOReuD68I3A36ILl72nh05rv9kAUDBq9Im1bfSqYxKXf9gGgiYGKrC4qvCkWbmUH+iC1Vbb0fWjp8KXN/69QcICwDyqmqbowYKGA171g6AITimAqab1Vh8VTgSQjnUn+hinKiss8NiabgDml9X0ywAyLvVsOioFAQhRrkdgMA/G2bAD1HzyS6vK2v0LTsAFLwsolwiCEKaYjsAAR4GNDxZh3kZYdCrefAnag55pZU5jb7169HPLADIq+pk5Ct5/WMDOA74nnQ9pvc1Qi3w4E/UbB2AkycbT3+WWQBQ8BYAopCj5PUP1A4AA36Imp8DwJZ1q1azACACUC/aM4EQxaYBRhtUUAmAHCBhgGpBwIv9jLgrTc+dk6iZHSquse/938KjLACIAEga3X4lr79GACJ0KpTVy4p/LQwaAfMzwnB1EgN+iLxhd27Zmfc/sfvz+rIAIK+qrRN3AjrFdgCcXQABZfXKfh0Y8EPkfdv2HVhxxtm/XxcAHP1DXncst0DWq2RBlpV5Fn3n2ir8ctKu2O0fa1Bh8dBwdI5gwA+Rt5Ra7I6MK4dfWX3ysMX1VB2AfewAUFCrtMl2g0FQbN9ZyXHAnSKcAT9xRgb8EHnT+sNFxxsd/AHA7/uGLADI66rtqIszQLEFQIxCD54M+CHynV+27/z4jKdqWQAQCwCbVC0I2nDldgCUdwC9NlmHuQz4IfKJQ8U19q9eeHQ5CwCiM1jsjjIAiYrtACgsDpgBP0S+tfKPYz/Cbj9zlLOFBQAFvTpJKBIUfDBSUgeAAT9EvlVQY5MXzZr6+hlPWwGILAAo6FklMQ/KHQKgiAJALQh4qV8oxqSFcIcj8qFvtmetL9y/teKMpyuVsO4sAMjrRFlzVMnr7+/3A2DAD1HLyK+2yYtmT3/JzY9YABABQJ0oHlZyGJBZJyBEDdRL/rluDPghahmLNuxemrP15/Izz3mggAGALADIJ2SdarfS/4ZovRq5tf5VASSFqrHoKhPSzAz4cWdrbmXVwqWrprZJ69C7XXxsr47xrdp0ijaGalUcHEkX74+8Kuv7E++Z5eZHpfDz2wCzACCfqbks5aBUWKT4OOBcP6rp083OgJ+EUAb8uLMus7Rw0qNjRxfs3VkNYEPD86aEhJDh457M6Nip05CU2KjOXeLNiW1b6fk5SOfFLsl475vVM6xVVe4G+pUo5e9gKUw+cSCnQDJrZJVS44D/vr4aq07Y/GJdekdr8NFgBvyczXd78o89de/fxlQV5nmU3zzgzodTewwYMqh92+QBadHm9K5xYSa9hoUVnd3CLce3PXNbxkPuzncAHGIBQNTIb0dyrW3C1HpJkhS5/v/5vRaLDte1+HqMSNFhzkATQtj1P8sH87FNz9w26F8X829Ep6Qbhox/fHBaWlpGanxUl0tiw+OSzSHsEhAAYF9RTf2Y228ZXpJ5sMbNj48BKFfK38Kdmnyixo5aAIq9Cb0/TAUc3UGPl/sZwZPTvxJlGfPW7vv21XHXTb/Yf6s457D1y2mPrASwsuG5PreOa3fpoKuHpCQmXJoe37pTz4TwVqE6VmHBprpedMxe8OXEsxz865R08GcBQD5TKzoqBEFordT1jzG07FGXAT9nVy858PqKre/Pe+S2t731/9i2dEHWtqULshq+D4+N1V4x6tG+ad16DOiQHNe7U5y5TceoUF6UCWAOAP9duX3xyjnP/nqWRU4q7W9iAUA+YRFRCqC9cjsALVMAaFQCXu5nxOgOeu5EbpRbRcdLn62a9tmzD63w5f+3qrDQvuLNKZsBbG54rveNdyX3Gjri6vYpKX07xEWkdY0zmcN0vBlDoFi09fj2dx+97Y2z/FhxZ/8AxwCQj3y0Nefb61JCbrLb7Ypc/z9KRNy4yrfZHiFqYM5AE0akMODHnfxqmzT9gyUTl816coMHi9sB+DQswdC6tWboPRP6pne7dEBaYuylHWPD23VobdRzFqLyrDhQcOLRmwfdZrdYzjaK+QiAKnYAiNx2AORsJa9/tMG3n9qtQgR8NDgcvaP5FnXnYIm1burL/7130+fzMz1YvBhADgA1AAOAMNcj1JufgdbSUnH5fyf/CuBUy7jzkBti+1838pr2bVMua5/QOq17XHikWa9hSeDHfj5aWjJx7K13nOPgX67Egz8LAPIZuygcBaDYLIAYgxoCfJPuEWtQ4ZOh4egUwUFm7uzIq6ydPOW5O3b/8GW+J40CnL42K8E5TavxAC69qxBoKAj08GJn9MC65YUH1i1fBGBRw3NDH/hP1x79M65JiYnq0TnB3KZTVGiYmm0Cv7D+WHnJxAfHjKzOzznbFCAZQK5S/z4WAOQTdYK0X8nrr1M5Y3crbN4tARjwc25rDhcXPvXYuIaAn3NxuM76mwplqXM9Sl3fqwEYGxUEXu0SAMDad2fsXfsu9jZ8n9p3SMTlN42+ol2HDv1SYyN7XJoUERdl1HKH8LG1R4qLJ44fe1tx1t5z3db3BACbUv9GFgDkEypB3qXkDgAAxBjVqLB57w6fDPg5t2V7C44+OfbmuzwI+JHhnI99IYM2JADVrkcDLU5fNjC6igKvvUjHtq6rOLZ13TIAyxqe63/H/e17Z1w3vENK3GXtos0p3ePDTRxf6D1Ld+Ueeeb+W++tzs+vP8diFVBQ6p873IPIZ47nF8g6yIJS0wBHranCpgLvDGK8NlmHuRlh0PND3e2p/ILfjm599v+ufNiDxUUAR/HnNn+z17OuQqDhYYKP73fdrlu30EGjH7kiKSU1IyU2qnO3BHNiSgQjjS+WKMuYt+7AmlfHDn+qiUXtAPa79jcWAERN2ZVVYIvRO7RKTQN8dGM1/ne8+bt9Y9P1mN43FLzs6+ZTVpIx/+d9S14de90rHixug3M0dktENurw58sGRl9/vg77+6QuXfoMHNouKbZXh5iIdl3iwnjjo/OQV22T3lz688xPnhn/dROLygAOQyF3/GMBQH5h46H8qvbhgkmpBcD0HRa8s9/arG++Cd0NeKK7kTuHG7U2Ca9+99vb7z8+6n0PFre6Dv7+Ms+0oUsQ2ujh0y6BKSZRd8P9T1yWdkm3q5Jio7t1jQ9PSDGHcE6pG78cLSl7bfbsh7Z/89ExDxZXVNzvubBlRD5TbZdrBEFjUur6RzXjtXm1IOClfqEYkxbCHcONcqvomPH56uc/nfLgMk92LTjb/v5UWcr464wDrZsugdcG91UX5dk+e/HfG9DobogDRj2Q2n3g0CvbJMX36hAX2alnvKmVUasO6v3sw/X7vp/72MjnzjHNr7HcQDn4swNAPvX1zhN7B8Zpu4iiMi+bLc2qx2ObLv7SskEj4K0rwjAskSdj7pyorBeff+/Tx1bOnvK7B4tXAMhyHXCV+Pnrbhqiz7RKSNEPu3fC4PYdOw9snxDVpVOMKaFd69CAPzGUHcCK/YXH35n7xuM7l33s6TS+AgB5gbQd2AEgn7FIjhJBUG7N2RxxwGadgI8Gm9A3Rssdwo1DJZb6qa/MGbfxszmHPVi8IeBHqRxwXrqw4vRocnWjgqBhOqLXTtHL83Pqlrw0YRWAVQ3PXTbi/5J6XX3L4ISkpMtSYyPb90gIj44IoLCiTdnl5V8sX/Py0hkT1p7HrwXcwZ8dAPKp938/sejGNrq7lBoHfKhCwtDlFRf8+0mhaiy+yoQOZgb8uLMlt7Ly6YlPjD60cXWxB4vnuT6UA50AZ3ph47EEPu0ShMfGaq8e/9Tl6Z06X9k2Prp757jwhNRIg+LaVxuyyspW/vbHex9PGrvkPH81YPc1dgDIZ6x2KWjjgDtFqPHJ0HDEGpjn4s4PmSX5T467Z3Rx1m6LB2fNngT8BAoHAIvrUXyWLoFXw4qqCgvtX8+YsB7A+obnLr12ZGKfq28e1q5tSr/2sRHp3eJNEeEhWr87oay1y1h7uDBr1U8/z/3ulUnrL2DbZ+N0SFRAVpdEPjFrfdbYuzsZPxJFUZFhQA4AqZ+Wwn6eV5v7x2jw4ZBwhGv5dnNnyR+5B54Zdc1Yi6WqqS17MQE/ga5xlyDM110CQ3hrzbDxT/Tr1K37lamJsT3T4sKTOkaFtUiklSjL2JpTWfXb4ewfvnvnv+8e2bK27AL+GTucA0trA3mn4ScS+cyMnzJ7j+9i2qbUAgAA+n1TjvxazyuAESk6zM0wQccTf7cF1QebMn+ZNmrwE558rgPIDPQP5Gakxp8vG3h1LIE7HTOGRg+86e5hqaltB7SPbZ3eNS6sdSuDd6rg/GqbtDuv4uS+47m/rP1i0Re7f1xyMdfrqwEch4IjflkAkN9588iRkJEmU51DlqHUNMDrV1ZiV6lnsxju7ajH830Y8OP29EqSMXfN7i9fu++GmR4s3pIBP4FE76ZL4LO9U6vVCtc8/Eyv1M7dBiTFRHVNjjK3SYwwmhPMep1B41mFbLVLyK+ut2WX1FYU1lhPnMgvPLD39w1rf/rw9T3NVJPmASgMlh2CH03kU4dPFEhhalml1AJg3M/V+DHX1uSbalJPIx7rauAL7kaNTcKs7za/+f7jd3zsyWc+/CvgJ5CozigIvH7jo7PpOWJUUnJalzYhhlCDKbJ1JCCoHA44HA5JsNVZqmurqoqzdv56fM9Py4q8tAq1cF7vtwbTDsBBgORTFTbZZjIKeqWuf7T+3DUzA37OrdwqOl78dOVzn099eLkHi/tjwE8gkdHCNz5qsPP7L3J3tsxtde1w3jK6JBh3ABYA5OOzP4cFCi4AYo1nv4zKgJ9zy66oE59/e/E/V8+dttWTWgHOgB8Ht5zPD4jlOJ121zjSuKFLEAghFjKcU/sKocwQKRYApMACwO6oEgQhUqnrH3WWDkCETsACBvyc1cFiS/20mbPHbfxsvicBP0Vw3med/ONA2RBpXNioS2A8o1OglGGudtfZfhEUfic/FgCkOFYRpQDaKnX9Y9zM42fAz7n9dqKy8plJj40+tHEtA34Cp0tQidPTMYVGBUGL3PjIA7Wug3452FViAUAtwyJJBYKg3LPkmDPigNPNzoCfeCPn+bmz5khx4VMP3zOq4OCepm6iEGwBP4HE4TrANp6i2dAlaDzI0NdvkjrXAb8MnEHCAoBaXr2o7NZu4zTA/jEaLBgSDhMDftz6alfe/qdHXn0vA37YJcDpSOPGXYLmHilb5ypCauAc2FjPl4EFAPlTB8AuHQNyfR7VAAAJ0klEQVQAQRAUGQYUa3C2+a9N1mFuRhj0ah783Z0OfvRr5q9TRg7+pweLM+AneHaLhkjjBipXUaBv9FXtOi41fG14g0mNvopwZkPUN/paC17TZwFA/k2ScVDJ6x+iBv7Z1YBJPYwM+HF32ic78MaPu7+cfd/1DPihpsj466UDYgFAAVsAaBy7lNwBAIAnexr5QrpRa5cx638b33hvwp2LPFjc6jrzt3HLEbUMnsOQz+XkFzg0UG4cMP0VA36I2AEgalKlHWKUTuC+FyCyK+rF6e98+uiqOVO2ebB4BZwBP6z+iFgAUNAVAHVSfZROxX0vABwosdRNnfHGuM1fzDviweIM+CFiAUDBrFZ01AiCEMotoWxbcqsqn5n0xKiDG1Z5Mnf/JJyZ60TEAoCCuAAoBxDLLaFcPx4uKXj6wbtHnTyyp6kR3Az4IWIBQORktTmKBEHoxC2hTF/uzN8z+fZh9zHgh4gFANF5qZGQCWAQt4SyXEDAz1E4U9mIiAUAEWCxiTubPwWUvMkuyZj3096vZ40bMcODxRnwQ8QCgMhNAVAnbgCUHQYUTGpskuOVpRtnL5g45hMPFre6Dv52bjki/8YgIGoRh04USGEqScUCwL+VWmyOGV/8OPXzKQ9+78HiDPghYgeA6NxOVEtll0QIUSwA/Nfx8jrx+XcW/+OHudO2e7A4A36IWAAQNa3AIh66JEIbxS3hn/YU1limvDTznm1ff3jcg8UZ8EPEAoDIwwKgVvpGEHQDuSX8z6/Z5RVTnpow+uCGNQz4IWIBQNS8amRhXq3oeFUvcByKP/n+UEnek+PGjC7P2WdtYlEG/BApHD98qcUs35OT37OVKp5bwj8s2Zm37+mRV4+3WquaGsTHgB8idgCILlxWhbisZyvdA9wSLcsB4N2NRzZMHz1kggeLM+CHiAUA0cXJr5Ym19jl+8O0KnaiWohNcmDWyu1fzH/ollc9WLwezjn+9dxyRMrHD15qUR9tPHh0WNuwVG4J36uxSY6Z32x648N/37nYg8UZ8EPEDgBR8/kj88TcYW07v84t4VtFtTb5uY+/n/Lti4+u9mBxBvwQsQNA1OwivtuyP7dXYngoN4VvHK+oE6fN//iRNfOf3+HB4mUAjsM5VICI2AEgajbVq7fv/6pXYv+x3BTet7uwxjL5xZl37Vj6YY4njQIw4IeIHQAib2kVG9ttyar1WztFh/EWgV60Obu84lnPA37yABRwqxGxA0DkNeWFhSVfbdz18eS/DbyfW8M7vj9Ukvvvu2+/ozr/MAN+iIgdAPIbBq3R2PXrdVvX9Uo0cyxAM/tkW87OyXcOe8BusTR1ox4G/BCxA0DkU1a7xVK74Nsfp3d/6NaXNSoVt0gzcAB4Z2PmLy+MHvyEB4uLADIB1HLLEbEDQORLMQCSX1+2eeHtl6Z04ea4ODbJgdd/2P3p3Puv92SKZb3r4F/HLUfEAoDI1zQAunW47KrohR+8u6JNhJ7dqQtUVS85Zn7zy6yPJt79hQeLW1wHfwb8ELEAIGoxyQBibp08b8RrD9z0PBOCz1+RxS5PX/j9M9+8+I8fPVicAT9ELACI/IIOQFcAwnNf/vTmfZenX85N4rnjFXXic/MWPvzjW9P/8GDxcjgDfmRuOSIWAET+oA2AKEN4uOatb39eNiwtJpqbpGm7C2ssk59/6a4d337MgB8iYgFAihQCoAsAIb3/sFbz3p6/rHOUUc/NcnabssvLJz/x+KgjW9aWebB4LoBCbjUiYgFA/igRQBwADB4/qdvMSQ99kGAK4dxAN1YcKj4+8e5bxlTnZzd1i14G/BARCwDyeyoAl7i6Abj6kcl9Xnn8vvkxRi2LgEaW/JGz7/+NGjaOAT9ExAKAAokZQIeGb27+z2tDpo+/dWakQRv0+6zsAN5af3DVjLuGTfZgcRHAETin+xERsQAgRUgF0Krhmxv+9cKAyQ/dOTvJpFMH6waxSQ68tuqPT+c9eJOnAT9HXF+JiFgAkGKoAXSG61IAAGTc+/glzz/+yPvpUUZdsG2Mklq749Wl61765D/jv/FgcQb8EBELAFI0I4COcI4LAACkX3ljzNPPTV84rENU0EwRPFhitb0w/+N//PyuR3P8q+C85s+AHyJiAUCKFgVnPsAphvBwzeQPl825p3/7voG+E686XJL78tSJf8/csMaTEfxlcAb8OLjbEBELAAoEKQD+csY/+sUPb/vHzYMmtQvAewdU1Yv4YMPB5a/de+00D3+lEM55/kRELAAooLQDEHnmkx0zhkf/a8qLb93YJa5toOzQG7Mryt9e8Mmkn9+fsdPDX2HADxGxAKCA3l/bwzlF8C9Gv/DOrWOHD3qiW7xJscmBhbV2eeGGvZ+8+fCtb8Ju96SNz4AfImIBQEFBBWc+gMndDw2RMbpHZi14euSAztcpabpglU12fLXj+Ob3X5k6NWfrugoPf02G825+VdwtiIgFAAXLftsWbi4HNIhO6xZ635RZT950aerwlFYGvy0Eyq2iY/ne/B2fvjv/hT0rF5/PDXrscE7zY8APEbEAoKBz6p4BZ2NKSDHc/fTr9w3p1enWASkR4f6y4geLa20/7Mle8/mcGa+fxxl/A6vr4G/jLkBELAAoWEXBOUOgyX35+sdevLz/oIy7L+8Q16NjVKjPg4SKLXZ53eHCwxu3bFu0dPqjqy/wn6kEkAXO8SciFgBEMMI5Q8DjwX83THz1yt59et/YOSmme8/4sMiwkOafRWiXHdhbWFO7M6d4/65d+5atmP3kamtV1YUeuB0A8sCR/kTEAoDoT1QAkuAmK6ApEcmdQ4fc/cAVqWnpfdrERXeKNxsT4sP1xiSzXqPx8B1SUGOXc8qttQWVlqK80srjWVlZv/702YKfCvZtao4BenVwhvvU8mUmIhYARO6Z4bwkcNEtfkNkrLbnsNvahSUkRppCzWaTOcwsOAQBAMpqLXVibXV5YXZm7v7Nq/Os+dneuOGOw3XGfxLOEf9ERCwAiJrYr6MBJMB5QyElqgZwAs4Bf0RELACIzoMWzpkCkQra1y0A8uEc7EdExAKA6CKEAIgB0NqPOwI1cLb7K/hyERELAKLmpYZz2mC0qyhoaRKAcgDFYKAPEbEAIPIJI4BWrocviwEZzvZ+hevBwX1ExAKAqAWLgTAAoa6vzRkS5HCd3Ve7HjU86BMRCwAi/6RzFQUhcIYL6eAcUKiBM29A1ei9I7seouthA1DveljgnMPv4CYlIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi8pL/D3Dftx1b6EMmAAAAAElFTkSuQmCC" />
  <input type="text">
  <span></span>
  <span></span>
</div>

<div>
<div>
<video controls="true" src="${videos[~~(Math.random()*videos.length)]}">
</div>
<div>
<img src="${images[~~(Math.random() * images.length)]}" />
<img src="${images[~~(Math.random() * images.length)]}" />
<img src="${images[~~(Math.random() * images.length)]}" />
</div>

</div>`
document.body.appendChild(h)

window.addEventListener('keydown', bossMode)

// No Autoplay

if(playerLocal) {
	let p = JSON.parse(playerLocal)
    if(p.autoplay != true) {
        p.autoplay = false
    }
    localStorage.setItem('mgp_player', JSON.stringify(p))
}

// Remove Analytics

$$('[onclick]').forEach(e => {
    if(e.getAttribute('onclick').includes('ga(', '')) {
        e.setAttribute('onclick', e.getAttribute('onclick').replace(/ga\(.+\);?/, ''))
    }
})

$$('[onclick=""]').forEach(e => e.removeAttribute('onclick'))

// Fast Search

fs.id = 'fast-search-pp'
fs.innerHTML = '<span id="fast-search-input-parent-pp"><i class="ph-icon-search"></i><input id="fast-search-input-pp" type="text" placeholder="Fast Search Pornhub"></span>'
fs.style.display = 'none'

let fsi = fs.children[0].children[1],
    fsb = fs.children[0].children[0]

fsi.onkeydown = fastSearch
fsb.onclick = fastSearch
document.body.appendChild(fs)

window.addEventListener('keydown', e => {
	if(e.ctrlKey && (e.key === 'k' || e.code === 'KeyK')) {
        e.preventDefault()
        hide('#fast-search-pp')
        fsi.focus()
    }
})

// Filters & Better Watch Pages

var step = [
    'step',
    'mom', 'mother', 'mommy', 'milf',
    'dad', 'father', 'daddy',
    'bro', 'brother',
    'sis', 'sister',
    'daughter',
    'son',
    'brattysis', 'myfamilypies', 'momsteachsex',
    'mylf', 'sis loves me', 'mommy\'s girl',
    'family sinners', 'pervmom', 'perv mom',
    'dad crush', 'spyfam', 'spy fam'
], get = [
    'lesbian',
    'gay', 'homo', 'homosexual',
    ' bi ', 'bisexual',
    'trans', 'transgender',
    'helloladyboy', 'mommy\'s girl', 'girlsway'
], hard = [
    'hardcore',
    'bdsm',
    'biting',
    'scratching',
    ' dom ', 'femdom', 'maledom', 'domination',
    ' wax ', 'waxing',
    ' gag ', 'gagging',
    ' whip ', 'whiping',
    ' tied ', 'tying',
    'bondage'
],

url = new URL(location.href)

if(url.searchParams.has('viewkey')) {
    $('#js-shareData > .tab-menu-wrapper-row').insertAdjacentHTML('beforeend', `
<div class="tab-menu-wrapper-cell">
    <a href="https://www.pornhub.com/embed/${location.search.split('viewkey=')[1]}" target="_self">
        <div id="embed_mode-btn" class="flag-btn tab-menu-item tooltipTrig" data-title="Open video in embed mode" role="button" tabindex="0">
            <i class="ph-icon-channel"></i>
            <span>Embed</span>
        </div>
    </a>
</div>`.replaceAll('\n', ''))
    let t = $('.title-container > .title > span')
    t.title = 'Click to copy'
    t.onclick = () => navigator.clipboard.writeText(t.innerText)

    // Fix for AdBlockers
    document.querySelector('#player').insertAdjacentHTML('afterend', '<div></div>')
}

if(url.searchParams.has('search')||url.searchParams.has('page')||url.searchParams.has('o')||(location.pathname === '/video' && url.searchParams.toString() === '')) {
    $('#duration-wrapper').previousElementSibling.outerHTML = `
    <div class="section_bar_sidebar"><div class="section_title"><i class="ph-icon-filter"></i> Filter <span class="subtitle">( PornHub+ )</span></div></div>
    <div class="sidebar_wrapper">
    <!-- pp = (P)ornhub (P)lus -->
            <ul class="nf-categories" id="pp-filter">
                <li>
                    <a class="sidebarIndent pp-a" id="ppStepLike" href="javascript:;">
                    Hide Step-like
                    </a>
                </li>
                <li>
                    <a class="sidebarIndent pp-a" id="ppNonGetero" href="javascript:;">
                    Hide Non-Hetero
                    </a>
                </li>
                <li class="sidebarIndent">
                    <a class="sidebarIndent pp-a" id="ppHardcore" href="javascript:;">
                    Hide BDSM & Hardcore
                    </a>
                </li>
            </ul>
        </div>
    <div class="section_bar_sidebar"><div class="section_title"><i class="ph-icon-toolbox"></i> Options <span class="subtitle">( PornHub+ )</span></div></div>
    <div class="sidebar_wrapper">
            <ul class="nf-categories" id="pp-options">
                <li>
                    <a class="sidebarIndent pp-a" id="ppPremVids" href="javascript:;">
                    Hide Paid Premium Videos
                    </a>
                </li>
                <li>
                    <a class="sidebarIndent pp-a" id="ppFooter" href="javascript:;">
                    Hide Footer
                    </a>
                </li>
                <li class="sidebarIndent">
                    <a class="sidebarIndent pp-a" id="ppNetbar" href="javascript:;">
                    Hide Networkbar
                    </a>
                </li>
            </ul>
        </div>
    <div class="section_bar_sidebar"><div class="section_title">Duration <span class="subtitle">( minutes )</span></div></div>`

    $$('.pp-a').forEach(e =>
        e.addEventListener('click', () => (e.style.color = (e.style.color == 'rgb(255, 153, 0)'||e.style.color == '#f90' ? 'unset' : 'rgb(255, 153, 0)')))
    )

    let step = $('#ppStepLike'),
        geter = $('#ppNonGetero'),
        hardc = $('#ppHardcore'),
        prem = $('#ppPremVids'),
        foot = $('#ppFooter'),
        net = $('#ppNetbar'),
        pp = JSON.parse(localStorage.getItem('pp'))

    for (let i of [
        [step, 'step', hideStepLike],
        [geter, 'getero', () => hideVideo(get)],
        [hardc, 'bdsm', () => hideVideo(hard)],
        [prem, 'premium', () => hide('.nf-videos > .sectionWrapper > .reset + .sectionWrapper'), true],
        [foot, 'footer', () => hide('#footer'), true],
        [net, 'net', () => hide('#js-networkBar'), true]
    ]) {
        let i3 = i[3] ? 'options' : 'filter'
        i[0].addEventListener('click', () => {
            ppControl(i3, i[1])
            i[2]()
        })
        if(pp[i3][i[1]] === '1') {
            i[0].click()
            ppControl(i3, i[1])
        }
    }
}

// Change Stars
if(url.pathname.indexOf('/pornstar/') != -1||url.pathname.indexOf('model') != -1) {
    window.addEventListener('keydown', e => {
        if((e.key === 'ArrowRight' || e.key === 'ArrowLeft') && e.shiftKey) {
            e.preventDefault()
            $(`.pornstarsNavButtons > a${e.key === 'ArrowRight' ? ':last-child' : ':first-child'}`).click()
        }
    })
}

// Nerd Stuff

function $(s) {
    return document.querySelector(s)
}

function $$(s) {
    return document.querySelectorAll(s)
}

function cE(t) {
    return document.createElement(t)
}

function hideStepLike() {
    $$('.clearfix > .title > a').forEach(e => {
        step.forEach(i => {
            let title = e.innerText.toLowerCase(), video = e.parentNode.parentNode.parentNode.parentNode
            if(title.match(`step[\-+/\.~]?${i}`)||title.match(`${i}`)) {
                if(video.style.display == 'none') video.style.display = ''
                else video.style.display = 'none'
            }
        })
    })
}

function hideVideo(arr) {
    $$('.clearfix > .title > a').forEach(e => {
        arr.forEach(i => {
            let title = e.innerText.toLowerCase(), video = e.parentNode.parentNode.parentNode.parentNode
            if(title.match(`${i}`)) video.style.display = video.style.display === 'none' ? '' : 'none'
        })
    })
}

function hide(selector) {
    let el = $(selector)
    if(el) el.style.display = el.style.display == 'none' ? 'unset' : 'none'
}

function bossMode(e) {
    if(e.code === 'Backquote') {
        document.title = 'Funny kitty videos - YouTurb'
        document.head.innerHTML += '<link rel="shortcut icon" href="https://icons.iconarchive.com/icons/papirus-team/papirus-apps/512/anki-icon.png" type="image/x-icon">'
        hide('#bossMode')
        $$('video').forEach(e => {
            if(e && e.pause) e.pause()
        })
    }
}

function ppControl(parent, child) {
    let pp = JSON.parse(localStorage.getItem('pp'))
    pp[parent][child] = pp[parent][child] === '0' ? '1' : '0'
    localStorage.setItem('pp', JSON.stringify(pp))
}

function cleanUp() {
    for (let i of ['watchedVideoStorage', 'watchedVideoIds', 'recentSearch', 'currentTimeStamp', 'mgp_player']) {
        if(localStorage.getItem(i)) {
            localStorage.removeItem(i)
        }
    }
}

function fastSearch(e) {
    function search() {
        let input = fsi.value.replaceAll(/[^0-9a-zA-Z\s-]+/g, '')
        let recSearch = localStorage.getItem('recentSearch')

        if(!recSearch) {
            localStorage.setItem('recentSearch', '[]')
        }

        let parsed = JSON.parse(recSearch)
        parsed.push(input)
        localStorage.setItem('recentSearch', JSON.stringify(parsed))
        location.replace('https://www.pornhub.com/video/search?search='+input.replaceAll(/\s/g, '+'))
    }

    if((e.type === 'keydown' && e.key === 'Enter') || e.type === 'click') {
        search()
    }
}

console.log(
    `Porn%cHub%c+ Loaded! (Time: ${new Date().toLocaleTimeString()}; Document State: ${document.readyState})`,
    'background: #f90;color: #000;border-radius: 3px;padding: 1px;margin-right: -5px;'
)



































// There is some eggs...
if(~~(Math.random() * 100) === 99) {
    logo.querySelector('img').src = 'https://di.phncdn.com/pics/logos/' + [
        '571',
        '2001',
        '2221',
        '4851',
        '4931',
        '5901',
        '7191',
        '7291'
    ][~~(Math.random() * 8)] + '.png'
}