<?php
$GLOBALS["__65da1b1ec2d66" . "53e8a0ab7848e53" . "6215"] = (@$GLOBALS["__65da1b1ec2d6653e8a0a" . "b7848e536215"] ?: array()) + array("_18c85900" . "143ab0285" . "ab3222911" . "23bd10" => base64_decode("dHlwZV" . "8="), "_8000452ad4cc87e" . "072d26d41b87de32" . "1" => base64_decode("Y29tbW9uLnR5cG" . "UudW5rbm93bg=="), "_7f628626dd1d55c71b1fc0932" . "ffd1d2c" => base64_decode("aXNfYXJ" . "yYXk="), "_0c5123aa" . "744f69bbc" . "0e8b3ea2f" . "6e847d" => base64_decode("bG1" . "zZw" . "=="), "_03a6e918caa55856d5fac0" . "ad6894df58" => base64_decode("Y29yZS5hZ2d" . "yZWdhdGlvbn" . "NfZmlsdGVy"), "_bd71c3b5c201" . "fc11db82ed14c" . "e424de5" => base64_decode("aW5fYXJyYXk" . "="));
use Claromentis\Core\Aggregation\AggregationFilterEvent;
use Claromentis\Core\Aggregation\AggregationConfig;
use Claromentis\Core\Event\EventDispatcher;






class ClaAggregations
{
    
    
    
    
    protected static $aggregations_info;
    
    
    
    
    protected static function Init()
    {
        if (!self::$aggregations_info) {
            self::$aggregations_info = new AggregationConfig();
            EventDispatcher::Shared()->dispatch($GLOBALS["__65da1b1ec" . "2d6653e8a0a" . "b7848e53621" . "5"]["_03a6e918caa55856d5fac0ad6894df5" . "8"], new AggregationFilterEvent(self::$aggregations_info));
        }
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    public static function GetName($aggregation)
    {
        self::Init();
        $_fa4acfe76e324ce56a458c338cef3ed1 = self::$aggregations_info->GetNames($aggregation);
        if ($_fa4acfe76e324ce56a458c338cef3ed1) {
            return $_fa4acfe76e324ce56a458c338cef3ed1;
        }
        return array($GLOBALS["__65da1b1ec2d6653e" . "8a0ab7848e536215"]["_0c5123aa744f69bbc0e8b3e" . "a2f6e847d"]($GLOBALS["__65da1b1ec2d6653" . "e8a0ab7848e536215"]["_8000452ad4cc87e0" . "72d26d41b87de321"]), $GLOBALS["__65da1b1ec2d6653e8" . "a0ab7848e536215"]["_0c5123aa744f6" . "9bbc0e8b3ea2f6" . "e847d"]($GLOBALS["__65da1b1e" . "c2d6653e8a" . "0ab7848e53" . "6215"]["_8000452ad4cc87e072" . "d26d41b87de321"]), $GLOBALS["__65da1b1" . "ec2d6653e" . "8a0ab7848" . "e536215"]["_18c85900143ab0285ab3222911" . "23bd10"] . $aggregation);
    }
    
    
    
    
    
    public static function GetNameSingular($aggregation)
    {
        list($_4866d6ee6087d5ffee4d6cbe0257808b) = self::GetName($aggregation);
        return $_4866d6ee6087d5ffee4d6cbe0257808b;
    }
    
    
    
    
    
    public static function GetNamePlural($aggregation)
    {
        list(, $_6453438a36eec215995d5f3c99014bb8) = self::GetName($aggregation);
        return $_6453438a36eec215995d5f3c99014bb8;
    }
    
    
    
    
    
    public static function GetCode($aggregation)
    {
        list(, , $code) = self::GetName($aggregation);
        return $code;
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    public static function GetNames($_6d47c451cff575a3b8af354e1fa29d61)
    {
        $_f274035cf280fb57c0c9ef54d849a83d = array();
        foreach ($_6d47c451cff575a3b8af354e1fa29d61 as $aggregation) {
            $_f274035cf280fb57c0c9ef54d849a83d[$aggregation] = self::GetName($aggregation);
        }
        return $_f274035cf280fb57c0c9ef54d849a83d;
    }
    
    
    
    
    
    
    public static function GetNamesSingular($_6d47c451cff575a3b8af354e1fa29d61)
    {
        $_f274035cf280fb57c0c9ef54d849a83d = array();
        foreach ($_6d47c451cff575a3b8af354e1fa29d61 as $aggregation) {
            list($_2984f5d2e76f2b8d04438c6a8a74222f) = self::GetName($aggregation);
            $_f274035cf280fb57c0c9ef54d849a83d[$aggregation] = $_2984f5d2e76f2b8d04438c6a8a74222f;
        }
        return $_f274035cf280fb57c0c9ef54d849a83d;
    }
    
    
    
    
    
    public static function GetNamesPlural($_6d47c451cff575a3b8af354e1fa29d61)
    {
        $_f274035cf280fb57c0c9ef54d849a83d = array();
        foreach ($_6d47c451cff575a3b8af354e1fa29d61 as $aggregation) {
            list(, $_b0c4ee8f3aff152dedc397f0c93fcc6f) = self::GetName($aggregation);
            $_f274035cf280fb57c0c9ef54d849a83d[$aggregation] = $_b0c4ee8f3aff152dedc397f0c93fcc6f;
        }
        return $_f274035cf280fb57c0c9ef54d849a83d;
    }
    
    
    
    
    
    public static function GetCodes($_6d47c451cff575a3b8af354e1fa29d61)
    {
        $_f274035cf280fb57c0c9ef54d849a83d = array();
        foreach ($_6d47c451cff575a3b8af354e1fa29d61 as $aggregation) {
            list(, , $code) = self::GetName($aggregation);
            $_f274035cf280fb57c0c9ef54d849a83d[$aggregation] = $code;
        }
        return $_f274035cf280fb57c0c9ef54d849a83d;
    }
    
    
    
    
    
    
    
    public static function GetNumByCodes($_2fa93201ac3ea6a8714aa6209f17fcaf)
    {
        if (!$GLOBALS["__65da1b1ec2d6653" . "e8a0ab7848e536215"]["_7f628626dd1d55c71b1fc0932f" . "fd1d2c"]($_2fa93201ac3ea6a8714aa6209f17fcaf) || empty($_2fa93201ac3ea6a8714aa6209f17fcaf)) {
            return array();
        }
        self::Init();
        $_98f020f9e828c587202bb54213af6c3f = self::$aggregations_info->GetAllNames();
        $_1f24efd4735b7a11b391147435e7d35d = array();
        foreach ($_98f020f9e828c587202bb54213af6c3f as $_d5318194ce3a421f28748e4e16700690 => $_2420ec9da53978a4e391100f2c6ab9f1) {
            if ($GLOBALS["__65da1b1ec2d6653e8a0ab7848e5" . "36215"]["_bd71c3b5c201fc11db8" . "2ed14ce424de5"]($_2420ec9da53978a4e391100f2c6ab9f1[2], $_2fa93201ac3ea6a8714aa6209f17fcaf)) {
                $_1f24efd4735b7a11b391147435e7d35d[$_2420ec9da53978a4e391100f2c6ab9f1[2]] = $_d5318194ce3a421f28748e4e16700690;
            }
        }
        return $_1f24efd4735b7a11b391147435e7d35d;
    }
    
    
    
    
    
    
    
    public static function GetNumByCode($code)
    {
        $_d96b572510a4b2ffefb08e7fd4c0786a = self::GetNumByCodes(array($code));
        if (!isset($_d96b572510a4b2ffefb08e7fd4c0786a[$code])) {
            return null;
        }
        return $_d96b572510a4b2ffefb08e7fd4c0786a[$code];
    }
    
    
    
    
    
    
    
    public static function GetParentsAggregations($aggregation)
    {
        self::Init();
        return self::$aggregations_info->GetParents($aggregation);
    }
    
    
    
    
    
    
    
    public static function GetChildrenAggregations($aggregation)
    {
        self::Init();
        return self::$aggregations_info->GetChildren($aggregation);
    }
}