Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php /** * This file is a part of the miniorange-saml-20-single-sign-on plugin. * ..

Decoded Output download

<?php 
/** 
 * This file is a part of the miniorange-saml-20-single-sign-on plugin. 
 * 
 * @link https://plugins.miniorange.com/ 
 * @author miniOrange 
 * @package miniorange-saml-20-single-sign-on 
 */ 
 
 
require_once MO_SAML_PLUGIN_DIR . MO_SAML_OPTIONS_ENUM; 
include_once Mo_Saml_Plugin_Files::MO_SAML_UTILITIES; 
class IDPMetadataReader 
{ 
    private $identityProviders; 
    private $serviceProviders; 
    public function __construct(DOMNode $Xh = NULL) 
    { 
        $this->identityProviders = array(); 
        $this->serviceProviders = array(); 
        $n0 = SAMLSPUtilities::xpQuery($Xh, "./saml_metadata:EntitiesDescriptor"); 
        if (!empty($n0)) { 
            goto t2y; 
        } 
        $Kz = SAMLSPUtilities::xpQuery($Xh, "./saml_metadata:EntityDescriptor"); 
        goto UAL; 
        t2y: 
        $Kz = SAMLSPUtilities::xpQuery($n0[0], "./saml_metadata:EntityDescriptor"); 
        UAL: 
        foreach ($Kz as $ze) { 
            $bz = SAMLSPUtilities::xpQuery($ze, "./saml_metadata:IDPSSODescriptor"); 
            if (empty($bz)) { 
                goto mp1; 
            } 
            $this->identityProviders = SAMLSPUtilities::mo_saml_array_push($this->identityProviders, new IdentityProviders($ze)); 
            mp1: 
            s9U: 
        } 
        LCF: 
    } 
    public function getIdentityProviders() 
    { 
        return $this->identityProviders; 
    } 
    public function getServiceProviders() 
    { 
        return $this->serviceProviders; 
    } 
} 
class IdentityProviders 
{ 
    private $idpName; 
    private $entityID; 
    private $loginDetails; 
    private $logoutDetails; 
    private $nameIdFormat; 
    private $signingCertificate; 
    private $encryptionCertificate; 
    private $signedRequest; 
    private $loginBinding; 
    private $logoutBinding; 
    public function __construct(DOMElement $Xh = NULL) 
    { 
        $this->idpName = ''; 
        $this->loginDetails = array(); 
        $this->logoutDetails = array(); 
        $this->nameIdFormat = array(); 
        $this->signingCertificate = array(); 
        $this->encryptionCertificate = array(); 
        if (!$Xh->hasAttribute("entityID")) { 
            goto tp4; 
        } 
        $this->entityID = $Xh->getAttribute("entityID"); 
        tp4: 
        if (!$Xh->hasAttribute("WantAuthnRequestsSigned")) { 
            goto XGD; 
        } 
        $this->signedRequest = $Xh->getAttribute("WantAuthnRequestsSigned"); 
        XGD: 
        $bz = SAMLSPUtilities::xpQuery($Xh, "./saml_metadata:IDPSSODescriptor"); 
        if (count($bz) > 1) { 
            goto p_g; 
        } 
        if (empty($bz)) { 
            goto dpx; 
        } 
        goto CUp; 
        p_g: 
        throw new Mo_SAML_Metadata_Reader_Exception("More than one <IDPSSODescriptor> in <EntityDescriptor>."); 
        goto CUp; 
        dpx: 
        throw new Mo_SAML_Metadata_Reader_Exception("Missing required <IDPSSODescriptor> in <EntityDescriptor>."); 
        CUp: 
        $Xj = $bz[0]; 
        $this->parseWantAuthnRequestsSigned($Xj); 
        $QT = SAMLSPUtilities::xpQuery($Xj, "./saml_metadata:Extensions"); 
        if (!$QT) { 
            goto S4l; 
        } 
        $this->parseInfo($QT[0]); 
        S4l: 
        $this->parseSSOService($Xj); 
        $this->parseSLOService($Xj); 
        $this->parseNameIdFormat($Xj); 
        $this->parsex509Certificate($Xj); 
    } 
    private function parseInfo($Xh) 
    { 
        $HJ = SAMLSPUtilities::xpQuery($Xh, "./mdui:UIInfo/mdui:DisplayName"); 
        foreach ($HJ as $Ht) { 
            if (!($Ht->hasAttribute("xml:lang") && $Ht->getAttribute("xml:lang") == "en")) { 
                goto USk; 
            } 
            $this->idpName = $Ht->textContent; 
            USk: 
            a5Z: 
        } 
        k1Q: 
    } 
    private function parseSSOService($Xh) 
    { 
        $YI = SAMLSPUtilities::xpQuery($Xh, "./saml_metadata:SingleSignOnService"); 
        foreach ($YI as $OX) { 
            $Yi = str_replace("urn:oasis:names:tc:SAML:2.0:bindings:", '', $OX->getAttribute("Binding")); 
            if (!(!empty($Yi) && !empty($OX->getAttribute("Location")))) { 
                goto rxn; 
            } 
            $this->loginDetails = SAMLSPUtilities::mo_saml_array_merge($this->loginDetails, array($Yi => $OX->getAttribute("Location"))); 
            if ($Yi == "HTTP-Redirect") { 
                goto xQ8; 
            } 
            if (!($Yi == "HTTP-POST")) { 
                goto tUV; 
            } 
            $this->loginBinding = "HttpPost"; 
            tUV: 
            goto Z2V; 
            xQ8: 
            $this->loginBinding = "HttpRedirect"; 
            goto liy; 
            Z2V: 
            rxn: 
            eVn: 
        } 
        liy: 
    } 
    private function parseSLOService($Xh) 
    { 
        $WQ = SAMLSPUtilities::xpQuery($Xh, "./saml_metadata:SingleLogoutService"); 
        foreach ($WQ as $A0) { 
            $Yi = str_replace("urn:oasis:names:tc:SAML:2.0:bindings:", '', $A0->getAttribute("Binding")); 
            if (empty($Yi)) { 
                goto gL3; 
            } 
            $this->logoutDetails = SAMLSPUtilities::mo_saml_array_merge($this->logoutDetails, array($Yi => $A0->getAttribute("Location"))); 
            if ($Yi == "HTTP-Redirect") { 
                goto E6h; 
            } 
            if (!($Yi == "HTTP-POST")) { 
                goto H54; 
            } 
            $this->logoutBinding = "HttpPost"; 
            H54: 
            goto k0j; 
            E6h: 
            $this->logoutBinding = "HttpRedirect"; 
            goto lnn; 
            k0j: 
            gL3: 
            J24: 
        } 
        lnn: 
    } 
    private function parseNameIdFormat($Xh) 
    { 
        $Lf = SAMLSPUtilities::xpQuery($Xh, "./saml_metadata:NameIDFormat"); 
        foreach ($Lf as $yA) { 
            $Kn = str_replace(Mo_Saml_Options_Enum_Prefixes::NAME_ID_FORMAT_PREFIX, '', $yA->nodeValue); 
            $this->nameIdFormat = array_merge($this->nameIdFormat, array($Kn)); 
            pgq: 
        } 
        zKU: 
    } 
    private function parsex509Certificate($Xh) 
    { 
        foreach (SAMLSPUtilities::xpQuery($Xh, "./saml_metadata:KeyDescriptor") as $vF) { 
            if ($vF->hasAttribute("use")) { 
                goto wZS; 
            } 
            $this->parseSigningCertificate($vF); 
            goto GjM; 
            wZS: 
            if ($vF->getAttribute("use") == "encryption") { 
                goto JnC; 
            } 
            $this->parseSigningCertificate($vF); 
            goto nHp; 
            JnC: 
            $this->parseEncryptionCertificate($vF); 
            nHp: 
            GjM: 
            fxv: 
        } 
        uY5: 
    } 
    private function parseWantAuthnRequestsSigned($Xh) 
    { 
        if (!$Xh->hasAttribute("WantAuthnRequestsSigned")) { 
            goto onQ; 
        } 
        $this->signedRequest = $Xh->getAttribute("WantAuthnRequestsSigned"); 
        onQ: 
    } 
    private function parseSigningCertificate($Xh) 
    { 
        $D9 = SAMLSPUtilities::xpQuery($Xh, "./ds:KeyInfo/ds:X509Data/ds:X509Certificate"); 
        if (empty($D9)) { 
            goto ypd; 
        } 
        foreach ($D9 as $zy) { 
            $LH = $zy->nodeValue; 
            if (empty($LH)) { 
                goto JHL; 
            } 
            $Nn = trim($D9[0]->textContent); 
            $Nn = str_replace(array("\xd", "
", "\x9", " "), '', $Nn); 
            $this->signingCertificate = SAMLSPUtilities::mo_saml_array_push($this->signingCertificate, SAMLSPUtilities::sanitize_certificate($Nn)); 
            JHL: 
            gLq: 
        } 
        Y6m: 
        ypd: 
    } 
    private function parseEncryptionCertificate($Xh) 
    { 
        $rc = SAMLSPUtilities::xpQuery($Xh, "./ds:KeyInfo/ds:X509Data/ds:X509Certificate"); 
        $MB = trim($rc[0]->textContent); 
        $MB = str_replace(array("
", "\xa", "	", " "), '', $MB); 
        if (empty($rc)) { 
            goto jHh; 
        } 
        $this->encryptionCertificate = SAMLSPUtilities::mo_saml_array_push($this->encryptionCertificate, $MB); 
        jHh: 
    } 
    public function getIdpName() 
    { 
        return $this->idpName; 
    } 
    public function getEntityID() 
    { 
        return $this->entityID; 
    } 
    public function getLoginURL($Yi) 
    { 
        return !empty($this->loginDetails[$Yi]) ? $this->loginDetails[$Yi] : ''; 
    } 
    public function getLogoutURL($Yi) 
    { 
        return !empty($this->logoutDetails[$Yi]) ? $this->logoutDetails[$Yi] : ''; 
    } 
    public function getLoginDetails() 
    { 
        return $this->loginDetails; 
    } 
    public function getLogoutDetails() 
    { 
        return $this->logoutDetails; 
    } 
    public function getNameIdFormats() 
    { 
        return $this->nameIdFormat; 
    } 
    public function getSigningCertificate() 
    { 
        return $this->signingCertificate; 
    } 
    public function getEncryptionCertificate() 
    { 
        return $this->encryptionCertificate[0]; 
    } 
    public function isRequestSigned() 
    { 
        return $this->signedRequest; 
    } 
    public function getLoginBindingType() 
    { 
        return $this->loginBinding; 
    } 
    public function getLogoutBindingType() 
    { 
        return $this->logoutBinding; 
    } 
} 
class ServiceProviders 
{ 
} 
 ?>

Did this file decode correctly?

Original Code

<?php
/**
 * This file is a part of the miniorange-saml-20-single-sign-on plugin.
 *
 * @link https://plugins.miniorange.com/
 * @author miniOrange
 * @package miniorange-saml-20-single-sign-on
 */


require_once MO_SAML_PLUGIN_DIR . MO_SAML_OPTIONS_ENUM;
include_once Mo_Saml_Plugin_Files::MO_SAML_UTILITIES;
class IDPMetadataReader
{
    private $identityProviders;
    private $serviceProviders;
    public function __construct(DOMNode $Xh = NULL)
    {
        $this->identityProviders = array();
        $this->serviceProviders = array();
        $n0 = SAMLSPUtilities::xpQuery($Xh, "\56\57\163\141\155\x6c\x5f\x6d\145\164\141\x64\141\x74\141\x3a\x45\156\164\151\164\151\145\163\x44\145\163\x63\162\x69\x70\x74\157\162");
        if (!empty($n0)) {
            goto t2y;
        }
        $Kz = SAMLSPUtilities::xpQuery($Xh, "\x2e\x2f\163\141\x6d\154\x5f\x6d\x65\x74\141\144\141\164\x61\x3a\105\x6e\x74\151\x74\171\104\145\163\143\x72\151\x70\164\x6f\x72");
        goto UAL;
        t2y:
        $Kz = SAMLSPUtilities::xpQuery($n0[0], "\x2e\x2f\x73\141\x6d\x6c\137\155\x65\x74\x61\x64\141\164\141\72\x45\156\x74\151\x74\x79\x44\145\x73\143\x72\x69\x70\164\157\162");
        UAL:
        foreach ($Kz as $ze) {
            $bz = SAMLSPUtilities::xpQuery($ze, "\56\x2f\163\141\155\154\137\x6d\145\164\x61\x64\x61\x74\141\x3a\x49\104\x50\123\123\x4f\x44\x65\x73\143\x72\x69\160\x74\x6f\x72");
            if (empty($bz)) {
                goto mp1;
            }
            $this->identityProviders = SAMLSPUtilities::mo_saml_array_push($this->identityProviders, new IdentityProviders($ze));
            mp1:
            s9U:
        }
        LCF:
    }
    public function getIdentityProviders()
    {
        return $this->identityProviders;
    }
    public function getServiceProviders()
    {
        return $this->serviceProviders;
    }
}
class IdentityProviders
{
    private $idpName;
    private $entityID;
    private $loginDetails;
    private $logoutDetails;
    private $nameIdFormat;
    private $signingCertificate;
    private $encryptionCertificate;
    private $signedRequest;
    private $loginBinding;
    private $logoutBinding;
    public function __construct(DOMElement $Xh = NULL)
    {
        $this->idpName = '';
        $this->loginDetails = array();
        $this->logoutDetails = array();
        $this->nameIdFormat = array();
        $this->signingCertificate = array();
        $this->encryptionCertificate = array();
        if (!$Xh->hasAttribute("\x65\x6e\164\151\x74\x79\x49\104")) {
            goto tp4;
        }
        $this->entityID = $Xh->getAttribute("\145\x6e\x74\151\164\x79\111\x44");
        tp4:
        if (!$Xh->hasAttribute("\x57\141\x6e\164\101\165\x74\150\x6e\x52\145\161\165\145\x73\x74\163\x53\x69\147\x6e\145\144")) {
            goto XGD;
        }
        $this->signedRequest = $Xh->getAttribute("\127\141\x6e\164\101\165\x74\150\156\122\x65\x71\x75\x65\x73\x74\x73\x53\x69\x67\x6e\145\x64");
        XGD:
        $bz = SAMLSPUtilities::xpQuery($Xh, "\56\57\163\x61\x6d\154\137\155\x65\164\141\x64\x61\x74\141\72\111\x44\x50\123\x53\117\104\145\163\x63\162\151\160\x74\x6f\162");
        if (count($bz) > 1) {
            goto p_g;
        }
        if (empty($bz)) {
            goto dpx;
        }
        goto CUp;
        p_g:
        throw new Mo_SAML_Metadata_Reader_Exception("\115\157\x72\145\x20\164\x68\x61\156\x20\157\x6e\x65\x20\74\x49\104\x50\123\x53\x4f\104\x65\163\x63\162\151\160\164\157\x72\76\x20\151\156\x20\74\x45\156\x74\x69\x74\171\x44\x65\163\143\x72\x69\x70\164\157\162\x3e\56");
        goto CUp;
        dpx:
        throw new Mo_SAML_Metadata_Reader_Exception("\115\151\x73\x73\x69\x6e\x67\x20\162\x65\161\x75\151\x72\x65\x64\40\x3c\111\104\120\123\123\x4f\x44\x65\163\143\x72\x69\x70\x74\x6f\x72\x3e\40\x69\156\40\x3c\x45\x6e\164\x69\x74\171\104\145\163\143\x72\x69\x70\x74\x6f\x72\76\x2e");
        CUp:
        $Xj = $bz[0];
        $this->parseWantAuthnRequestsSigned($Xj);
        $QT = SAMLSPUtilities::xpQuery($Xj, "\x2e\x2f\x73\x61\x6d\x6c\137\155\x65\x74\141\x64\141\x74\x61\x3a\x45\170\164\x65\x6e\163\151\x6f\156\x73");
        if (!$QT) {
            goto S4l;
        }
        $this->parseInfo($QT[0]);
        S4l:
        $this->parseSSOService($Xj);
        $this->parseSLOService($Xj);
        $this->parseNameIdFormat($Xj);
        $this->parsex509Certificate($Xj);
    }
    private function parseInfo($Xh)
    {
        $HJ = SAMLSPUtilities::xpQuery($Xh, "\56\x2f\x6d\x64\165\x69\x3a\x55\x49\x49\x6e\x66\x6f\57\155\x64\165\151\x3a\104\151\163\160\x6c\141\x79\x4e\141\155\145");
        foreach ($HJ as $Ht) {
            if (!($Ht->hasAttribute("\170\155\154\72\x6c\x61\x6e\x67") && $Ht->getAttribute("\170\155\x6c\x3a\x6c\x61\x6e\147") == "\x65\x6e")) {
                goto USk;
            }
            $this->idpName = $Ht->textContent;
            USk:
            a5Z:
        }
        k1Q:
    }
    private function parseSSOService($Xh)
    {
        $YI = SAMLSPUtilities::xpQuery($Xh, "\x2e\57\163\x61\155\x6c\x5f\x6d\145\x74\x61\x64\x61\x74\x61\72\123\151\156\147\154\x65\123\x69\147\156\x4f\x6e\123\145\162\x76\151\143\x65");
        foreach ($YI as $OX) {
            $Yi = str_replace("\x75\x72\x6e\x3a\157\x61\163\x69\163\72\x6e\x61\x6d\145\163\x3a\164\143\72\123\101\x4d\114\72\62\x2e\60\72\142\x69\156\144\x69\x6e\147\163\72", '', $OX->getAttribute("\102\151\156\144\x69\156\x67"));
            if (!(!empty($Yi) && !empty($OX->getAttribute("\114\x6f\143\x61\x74\x69\157\156")))) {
                goto rxn;
            }
            $this->loginDetails = SAMLSPUtilities::mo_saml_array_merge($this->loginDetails, array($Yi => $OX->getAttribute("\x4c\157\x63\x61\164\151\x6f\x6e")));
            if ($Yi == "\x48\124\124\x50\55\x52\145\144\x69\x72\145\x63\x74") {
                goto xQ8;
            }
            if (!($Yi == "\x48\x54\x54\x50\55\x50\117\x53\124")) {
                goto tUV;
            }
            $this->loginBinding = "\110\164\164\160\x50\157\163\x74";
            tUV:
            goto Z2V;
            xQ8:
            $this->loginBinding = "\x48\164\164\160\x52\x65\144\x69\162\145\x63\164";
            goto liy;
            Z2V:
            rxn:
            eVn:
        }
        liy:
    }
    private function parseSLOService($Xh)
    {
        $WQ = SAMLSPUtilities::xpQuery($Xh, "\56\x2f\163\x61\x6d\x6c\137\155\145\164\x61\x64\x61\x74\141\72\123\x69\x6e\147\154\145\114\157\147\157\x75\x74\123\145\162\166\x69\x63\x65");
        foreach ($WQ as $A0) {
            $Yi = str_replace("\x75\x72\156\72\157\x61\163\x69\x73\72\x6e\x61\x6d\145\163\72\x74\x63\72\x53\x41\x4d\114\72\62\x2e\60\72\x62\151\156\144\151\156\147\x73\72", '', $A0->getAttribute("\102\151\156\x64\x69\x6e\x67"));
            if (empty($Yi)) {
                goto gL3;
            }
            $this->logoutDetails = SAMLSPUtilities::mo_saml_array_merge($this->logoutDetails, array($Yi => $A0->getAttribute("\114\x6f\143\141\x74\151\157\x6e")));
            if ($Yi == "\x48\x54\124\120\55\122\x65\144\151\162\x65\143\164") {
                goto E6h;
            }
            if (!($Yi == "\x48\x54\124\x50\x2d\120\117\x53\124")) {
                goto H54;
            }
            $this->logoutBinding = "\110\164\x74\160\x50\x6f\x73\164";
            H54:
            goto k0j;
            E6h:
            $this->logoutBinding = "\x48\164\x74\x70\122\x65\144\x69\x72\x65\x63\x74";
            goto lnn;
            k0j:
            gL3:
            J24:
        }
        lnn:
    }
    private function parseNameIdFormat($Xh)
    {
        $Lf = SAMLSPUtilities::xpQuery($Xh, "\56\57\x73\x61\x6d\154\x5f\155\145\164\x61\x64\x61\164\141\72\116\x61\x6d\x65\111\x44\x46\x6f\x72\155\x61\x74");
        foreach ($Lf as $yA) {
            $Kn = str_replace(Mo_Saml_Options_Enum_Prefixes::NAME_ID_FORMAT_PREFIX, '', $yA->nodeValue);
            $this->nameIdFormat = array_merge($this->nameIdFormat, array($Kn));
            pgq:
        }
        zKU:
    }
    private function parsex509Certificate($Xh)
    {
        foreach (SAMLSPUtilities::xpQuery($Xh, "\x2e\x2f\163\141\x6d\x6c\x5f\x6d\x65\164\x61\144\x61\164\141\x3a\x4b\x65\171\104\x65\x73\x63\x72\x69\x70\164\157\x72") as $vF) {
            if ($vF->hasAttribute("\x75\x73\145")) {
                goto wZS;
            }
            $this->parseSigningCertificate($vF);
            goto GjM;
            wZS:
            if ($vF->getAttribute("\165\163\145") == "\145\x6e\143\x72\x79\x70\164\151\x6f\x6e") {
                goto JnC;
            }
            $this->parseSigningCertificate($vF);
            goto nHp;
            JnC:
            $this->parseEncryptionCertificate($vF);
            nHp:
            GjM:
            fxv:
        }
        uY5:
    }
    private function parseWantAuthnRequestsSigned($Xh)
    {
        if (!$Xh->hasAttribute("\x57\x61\156\x74\x41\165\164\150\156\122\145\x71\165\x65\163\164\x73\x53\x69\147\x6e\145\144")) {
            goto onQ;
        }
        $this->signedRequest = $Xh->getAttribute("\127\x61\x6e\x74\x41\165\x74\150\156\122\x65\161\x75\x65\163\x74\163\123\x69\147\x6e\x65\144");
        onQ:
    }
    private function parseSigningCertificate($Xh)
    {
        $D9 = SAMLSPUtilities::xpQuery($Xh, "\56\57\144\163\72\113\x65\x79\x49\156\146\157\57\x64\163\72\130\x35\60\71\104\141\164\x61\x2f\x64\163\72\130\65\x30\71\x43\x65\162\x74\151\x66\151\x63\x61\164\145");
        if (empty($D9)) {
            goto ypd;
        }
        foreach ($D9 as $zy) {
            $LH = $zy->nodeValue;
            if (empty($LH)) {
                goto JHL;
            }
            $Nn = trim($D9[0]->textContent);
            $Nn = str_replace(array("\xd", "\12", "\x9", "\x20"), '', $Nn);
            $this->signingCertificate = SAMLSPUtilities::mo_saml_array_push($this->signingCertificate, SAMLSPUtilities::sanitize_certificate($Nn));
            JHL:
            gLq:
        }
        Y6m:
        ypd:
    }
    private function parseEncryptionCertificate($Xh)
    {
        $rc = SAMLSPUtilities::xpQuery($Xh, "\56\57\x64\x73\72\x4b\145\171\111\x6e\x66\157\57\144\163\72\x58\x35\x30\71\x44\x61\164\141\x2f\x64\163\x3a\x58\65\x30\x39\x43\x65\162\x74\151\146\151\x63\141\x74\145");
        $MB = trim($rc[0]->textContent);
        $MB = str_replace(array("\15", "\xa", "\11", "\x20"), '', $MB);
        if (empty($rc)) {
            goto jHh;
        }
        $this->encryptionCertificate = SAMLSPUtilities::mo_saml_array_push($this->encryptionCertificate, $MB);
        jHh:
    }
    public function getIdpName()
    {
        return $this->idpName;
    }
    public function getEntityID()
    {
        return $this->entityID;
    }
    public function getLoginURL($Yi)
    {
        return !empty($this->loginDetails[$Yi]) ? $this->loginDetails[$Yi] : '';
    }
    public function getLogoutURL($Yi)
    {
        return !empty($this->logoutDetails[$Yi]) ? $this->logoutDetails[$Yi] : '';
    }
    public function getLoginDetails()
    {
        return $this->loginDetails;
    }
    public function getLogoutDetails()
    {
        return $this->logoutDetails;
    }
    public function getNameIdFormats()
    {
        return $this->nameIdFormat;
    }
    public function getSigningCertificate()
    {
        return $this->signingCertificate;
    }
    public function getEncryptionCertificate()
    {
        return $this->encryptionCertificate[0];
    }
    public function isRequestSigned()
    {
        return $this->signedRequest;
    }
    public function getLoginBindingType()
    {
        return $this->loginBinding;
    }
    public function getLogoutBindingType()
    {
        return $this->logoutBinding;
    }
}
class ServiceProviders
{
}

Function Calls

None

Variables

None

Stats

MD5 eb3432c6dbc6f196744b68c25dc5c65c
Eval Count 0
Decode Time 53 ms