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 /* ________________________________________ | GarudaCBT ..

Decoded Output download

<?php 
/*   ________________________________________ 
    |                 GarudaCBT              | 
    |    https://github.com/garudacbt/cbt    | 
    |________________________________________| 
*/ 
defined("BASEPATH") or 
    exit( 
        "No direct script access allowed" 
    ); 
class Ion_auth_model extends CI_Model 
{ 
    const MAX_COOKIE_LIFETIME = 63072000; 
    const MAX_PASSWORD_SIZE_BYTES = 4096; 
    public $tables = []; 
    public $activation_code; 
    public $new_password; 
    public $identity; 
    public $_ion_where = []; 
    public $_ion_select = []; 
    public $_ion_like = []; 
    public $_ion_limit = null; 
    public $_ion_offset = null; 
    public $_ion_order_by = null; 
    public $_ion_order = null; 
    protected $_ion_hooks; 
    protected $response = null; 
    protected $messages; 
    protected $errors; 
    protected $error_start_delimiter; 
    protected $error_end_delimiter; 
    public $_cache_user_in_group = []; 
    protected $_cache_groups = []; 
    protected $db; 
    private $identity_column; 
    private $join; 
    private $hash_method; 
    private $message_start_delimiter; 
    private $message_end_delimiter; 
    public function __construct() 
    { 
        goto YMT81; 
        T0oJX: 
        KHmMf: 
        goto TIQeh; 
        f1Z0y: 
        $this->error_start_delimiter = $error_prefix->getValue( 
            $this->form_validation 
        ); 
        goto nsQbv; 
        H8ckW: 
        sMp9x: 
        goto nSN3_; 
        WMbPc: 
        $this->identity_column = $this->config->item( 
            "identity", 
            "ion_auth" 
        ); 
        goto hU8E3; 
        LZ_Fg: 
        goto H9wzw; 
        goto T0oJX; 
        Vpkff: 
        $this->message_end_delimiter = $this->error_end_delimiter; 
        goto LNct1; 
        Nw2bv: 
        $this->messages = []; 
        goto HudFR; 
        MIRbC: 
        $error_prefix = $form_validation_class->getProperty( 
            "_error_prefix" 
        ); 
        goto GOURm; 
        t4qGA: 
        $this->tables = $this->config->item( 
            "tables", 
            "ion_auth" 
        ); 
        goto WMbPc; 
        YMT81: 
        $this->config->load("ion_auth", true); 
        goto w49O8; 
        gkqp3: 
        $this->error_end_delimiter = $error_suffix->getValue( 
            $this->form_validation 
        ); 
        goto Vpkff; 
        N7XX6: 
        $this->_ion_hooks = new stdClass(); 
        goto NSDAs; 
        w49O8: 
        $this->load->helper("cookie"); 
        goto QPjGB; 
        nSN3_: 
        $this->load->library( 
            "form_validation" 
        ); 
        goto ELS2v; 
        HudFR: 
        $this->errors = []; 
        goto Q6zYS; 
        VdH_3: 
        $this->error_start_delimiter = $this->config->item( 
            "error_start_delimiter", 
            "ion_auth" 
        ); 
        goto J1WbU; 
        QPjGB: 
        $this->load->helper("date"); 
        goto QNhzs; 
        Tcslx: 
        $error_suffix->setAccessible(true); 
        goto gkqp3; 
        nsQbv: 
        $this->message_start_delimiter = $this->error_start_delimiter; 
        goto rAeFD; 
        GOURm: 
        $error_prefix->setAccessible(true); 
        goto f1Z0y; 
        BxyOR: 
        H9wzw: 
        goto t4qGA; 
        LNct1: 
        gii_o: 
        goto N7XX6; 
        GYT0h: 
        if ( 
            $delimiters_source === 
            "form_validation" 
        ) { 
            goto sMp9x; 
        } 
        goto wp910; 
        hU8E3: 
        $this->join = $this->config->item( 
            "join", 
            "ion_auth" 
        ); 
        goto Awi0P; 
        NSDAs: 
        $this->trigger_events( 
            "model_constructor" 
        ); 
        goto A2Sfb; 
        S8fe7: 
        goto gii_o; 
        goto H8ckW; 
        Q6zYS: 
        $delimiters_source = $this->config->item( 
            "delimiters_source", 
            "ion_auth" 
        ); 
        goto GYT0h; 
        oNuRR: 
        $this->message_end_delimiter = $this->config->item( 
            "message_end_delimiter", 
            "ion_auth" 
        ); 
        goto VdH_3; 
        QNhzs: 
        $this->lang->load("ion_auth"); 
        goto s1ozu; 
        Eczx2: 
        $this->db = $CI->db; 
        goto BxyOR; 
        Awi0P: 
        $this->hash_method = $this->config->item( 
            "hash_method", 
            "ion_auth" 
        ); 
        goto Nw2bv; 
        J1WbU: 
        $this->error_end_delimiter = $this->config->item( 
            "error_end_delimiter", 
            "ion_auth" 
        ); 
        goto S8fe7; 
        s1ozu: 
        $group_name = $this->config->item( 
            "database_group_name", 
            "ion_auth" 
        ); 
        goto S4_SW; 
        TIQeh: 
        $CI = &get_instance(); 
        goto Eczx2; 
        S4_SW: 
        if (empty($group_name)) { 
            goto KHmMf; 
        } 
        goto u_onv; 
        u_onv: 
        $this->db = $this->load->database($group_name, true, true); 
        goto LZ_Fg; 
        ELS2v: 
        $form_validation_class = new ReflectionClass( 
            "CI_Form_validation" 
        ); 
        goto MIRbC; 
        rAeFD: 
        $error_suffix = $form_validation_class->getProperty( 
            "_error_suffix" 
        ); 
        goto Tcslx; 
        wp910: 
        $this->message_start_delimiter = $this->config->item( 
            "message_start_delimiter", 
            "ion_auth" 
        ); 
        goto oNuRR; 
        A2Sfb: 
    } 
    public function db() 
    { 
        return $this->db; 
    } 
    public function hash_password($password, $identity = null) 
    { 
        goto E3vrU; 
        YJydC: 
        WVcRN: 
        goto TDCit; 
        pgUkI: 
        if (!($algo !== false && $params !== false)) { 
            goto WVcRN; 
        } 
        goto ZnndS; 
        e6pUX: 
        PbFQV: 
        goto Rfrm1; 
        ZnndS: 
        return password_hash($password, $algo, $params); 
        goto YJydC; 
        uLhJg: 
        $params = $this->_get_hash_parameters($identity); 
        goto pgUkI; 
        NAl3v: 
        return false; 
        goto e6pUX; 
        E3vrU: 
        if ( 
            !( 
                empty($password) || 
                strpos($password, "\x0") !== false || 
                strlen($password) > self::MAX_PASSWORD_SIZE_BYTES 
            ) 
        ) { 
            goto PbFQV; 
        } 
        goto NAl3v; 
        TDCit: 
        return false; 
        goto b5f2y; 
        Rfrm1: 
        $algo = $this->_get_hash_algo(); 
        goto uLhJg; 
        b5f2y: 
    } 
    public function verify_password( 
        $password, 
        $hash_password_db, 
        $identity = null 
    ) { 
        goto b5RGg; 
        xKhg7: 
        return false; 
        goto brpKU; 
        CG20q: 
        return password_verify($password, $hash_password_db); 
        goto XktTQ; 
        RyIp1: 
        return $this->_password_verify_sha1_legacy( 
            $identity, 
            $password, 
            $hash_password_db 
        ); 
        goto GxNbx; 
        b5RGg: 
        if ( 
            !( 
                empty($password) || 
                empty($hash_password_db) || 
                strpos($password, "\0") !== false || 
                strlen($password) > self::MAX_PASSWORD_SIZE_BYTES 
            ) 
        ) { 
            goto uJlpV; 
        } 
        goto xKhg7; 
        brpKU: 
        uJlpV: 
        goto UG0MZ; 
        UG0MZ: 
        if (strpos($hash_password_db, "$") === 0) { 
            goto C4w1z; 
        } 
        goto RyIp1; 
        GxNbx: 
        goto xbBCo; 
        goto k556g; 
        k556g: 
        C4w1z: 
        goto CG20q; 
        XktTQ: 
        xbBCo: 
        goto gUFHY; 
        gUFHY: 
    } 
    public function rehash_password_if_needed($hash, $identity, $password) 
    { 
        goto Vd0Lg; 
        y01KM: 
        if ($this->_set_password_db($identity, $password)) { 
            goto sfe9_; 
        } 
        goto XPYNj; 
        rLSR3: 
        $this->trigger_events([ 
            "rehash_password", 
            "rehash_password_successful", 
        ]); 
        goto zTECh; 
        yOKVS: 
        goto Usl5p; 
        goto sHbbw; 
        gdJ0Z: 
        if (!password_needs_rehash($hash, $algo, $params)) { 
            goto iXzTC; 
        } 
        goto y01KM; 
        sHbbw: 
        sfe9_: 
        goto rLSR3; 
        Vd0Lg: 
        $algo = $this->_get_hash_algo(); 
        goto QNua2; 
        zTECh: 
        Usl5p: 
        goto bqC1j; 
        bqC1j: 
        iXzTC: 
        goto Ansh4; 
        QNua2: 
        $params = $this->_get_hash_parameters($identity); 
        goto z10id; 
        Ansh4: 
        zsrKq: 
        goto gHRzR; 
        XPYNj: 
        $this->trigger_events([ 
            "rehash_password", 
            "rehash_password_unsuccessful", 
        ]); 
        goto yOKVS; 
        z10id: 
        if (!($algo !== false && $params !== false)) { 
            goto zsrKq; 
        } 
        goto gdJ0Z; 
        gHRzR: 
    } 
    public function get_user_by_activation_code($user_code) 
    { 
        goto FKaLU; 
        aoV5_: 
        $user = $this->where( 
            "activation_selector", 
            $token->selector 
        ) 
            ->users() 
            ->row(); 
        goto R4e4F; 
        plrZ_: 
        BGzey: 
        goto FUK2y; 
        FKaLU: 
        $token = $this->_retrieve_selector_validator_couple($user_code); 
        goto aoV5_; 
        r9bWA: 
        return false; 
        goto UyKtG; 
        R4e4F: 
        if (!$user) { 
            goto UhCbt; 
        } 
        goto ZoKlr; 
        n70Iu: 
        return $user; 
        goto plrZ_; 
        ZoKlr: 
        if ( 
            !$this->verify_password($token->validator, $user->activation_code) 
        ) { 
            goto BGzey; 
        } 
        goto n70Iu; 
        FUK2y: 
        UhCbt: 
        goto r9bWA; 
        UyKtG: 
    } 
    public function activate($id, $code = false) 
    { 
        goto osLrY; 
        f1q_m: 
        $this->trigger_events([ 
            "post_activate", 
            "post_activate_unsuccessful", 
        ]); 
        goto CnATn; 
        ajN5T: 
        vzfxY: 
        goto f1q_m; 
        osLrY: 
        $this->trigger_events( 
            "pre_activate" 
        ); 
        goto iBnkm; 
        zXlVp: 
        $this->trigger_events([ 
            "post_activate", 
            "post_activate_successful", 
        ]); 
        goto fb3kk; 
        AB4pV: 
        $this->db->update($this->tables["users"], $data, [ 
            "id" => $id, 
        ]); 
        goto Vl7fB; 
        XumHp: 
        $this->trigger_events("extra_where"); 
        goto AB4pV; 
        Ma6po: 
        if (!($code === false || ($user && $user->id === $id))) { 
            goto vzfxY; 
        } 
        goto heeC0; 
        QOOre: 
        $user = $this->get_user_by_activation_code($code); 
        goto uJqxz; 
        fb3kk: 
        $this->set_message( 
            "activate_successful" 
        ); 
        goto f2Xf8; 
        Vl7fB: 
        if (!($this->db->affected_rows() === 1)) { 
            goto HauJG; 
        } 
        goto zXlVp; 
        CnATn: 
        $this->set_error( 
            "activate_unsuccessful" 
        ); 
        goto VsqMp; 
        VsqMp: 
        return false; 
        goto CwwFA; 
        uJqxz: 
        Zps8e: 
        goto Ma6po; 
        iBnkm: 
        if (!($code !== false)) { 
            goto Zps8e; 
        } 
        goto QOOre; 
        hbBs_: 
        HauJG: 
        goto ajN5T; 
        heeC0: 
        $data = [ 
            "activation_selector" => null, 
            "activation_code" => null, 
            "active" => 1, 
        ]; 
        goto XumHp; 
        f2Xf8: 
        return true; 
        goto hbBs_; 
        CwwFA: 
    } 
    public function deactivate($id = null) 
    { 
        goto LWdCO; 
        X4Ogi: 
        $this->set_error( 
            "deactivate_current_user_unsuccessful" 
        ); 
        goto FzeRb; 
        yzUxb: 
        $this->set_message( 
            "deactivate_successful" 
        ); 
        goto Qmtrg; 
        esi4s: 
        $this->activation_code = $token->user_code; 
        goto JsPnf; 
        QnyPK: 
        $this->trigger_events("extra_where"); 
        goto S8IkR; 
        U0FOH: 
        if (!isset($id)) { 
            goto z5gLf; 
        } 
        goto AwipR; 
        LWdCO: 
        $this->trigger_events("deactivate"); 
        goto U0FOH; 
        B2D02: 
        $this->set_error( 
            "deactivate_unsuccessful" 
        ); 
        goto kBR3v; 
        AwipR: 
        if ( 
            !($this->ion_auth->logged_in() && $this->user()->row()->id == $id) 
        ) { 
            goto wK101; 
        } 
        goto X4Ogi; 
        tUW5X: 
        $token = $this->_generate_selector_validator_couple(20, 40); 
        goto esi4s; 
        TLk8W: 
        z5gLf: 
        goto B2D02; 
        VkmjP: 
        goto axICd; 
        goto Cy6yZ; 
        riKzu: 
        goto EEBnU; 
        goto TLk8W; 
        Wu4eE: 
        EEBnU: 
        goto tUW5X; 
        Sahhx: 
        if ($return) { 
            goto WwT16; 
        } 
        goto ZvfCl; 
        FzeRb: 
        return false; 
        goto Oy0r9; 
        JsPnf: 
        $data = [ 
            "activation_selector" => 
                $token->selector, 
            "activation_code" => 
                $token->validator_hashed, 
            "active" => 0, 
        ]; 
        goto QnyPK; 
        Cy6yZ: 
        WwT16: 
        goto yzUxb; 
        jLFbC: 
        $return = $this->db->affected_rows() == 1; 
        goto Sahhx; 
        Oy0r9: 
        wK101: 
        goto riKzu; 
        ZvfCl: 
        $this->set_error( 
            "deactivate_unsuccessful" 
        ); 
        goto VkmjP; 
        Qmtrg: 
        axICd: 
        goto bLTFD; 
        kBR3v: 
        return false; 
        goto Wu4eE; 
        S8IkR: 
        $this->db->update($this->tables["users"], $data, [ 
            "id" => $id, 
        ]); 
        goto jLFbC; 
        bLTFD: 
        return $return; 
        goto umK5n; 
        umK5n: 
    } 
    public function clear_forgotten_password_code($identity) 
    { 
        goto eaJmA; 
        tEmNS: 
        X9eBT: 
        goto ucMSw; 
        eW8d0: 
        return true; 
        goto ig4aN; 
        ucMSw: 
        $data = [ 
            "forgotten_password_selector" => null, 
            "forgotten_password_code" => null, 
            "forgotten_password_time" => null, 
        ]; 
        goto LllII; 
        LllII: 
        $this->db->update($this->tables["users"], $data, [ 
            $this->identity_column => $identity, 
        ]); 
        goto eW8d0; 
        eaJmA: 
        if (!empty($identity)) { 
            goto X9eBT; 
        } 
        goto bRdS5; 
        bRdS5: 
        return false; 
        goto tEmNS; 
        ig4aN: 
    } 
    public function clear_remember_code($identity) 
    { 
        goto kSwjj; 
        DmAVX: 
        $data = [ 
            "remember_selector" => null, 
            "remember_code" => null, 
        ]; 
        goto vbEAi; 
        cGE4O: 
        return false; 
        goto M0Q4Y; 
        pW6dp: 
        return true; 
        goto lVO0n; 
        vbEAi: 
        $this->db->update($this->tables["users"], $data, [ 
            $this->identity_column => $identity, 
        ]); 
        goto pW6dp; 
        M0Q4Y: 
        FlOBu: 
        goto DmAVX; 
        kSwjj: 
        if (!empty($identity)) { 
            goto FlOBu; 
        } 
        goto cGE4O; 
        lVO0n: 
    } 
    public function reset_password($identity, $new) 
    { 
        goto uRF3W; 
        Swt2m: 
        H6Mde: 
        goto qD5ea; 
        vzRnk: 
        $this->set_error( 
            "password_change_unsuccessful" 
        ); 
        goto D5OjS; 
        HLDqb: 
        $this->trigger_events([ 
            "post_change_password", 
            "post_change_password_successful", 
        ]); 
        goto OC4xU; 
        fmIxq: 
        if ($this->identity_check($identity)) { 
            goto OCsjx; 
        } 
        goto vChn0; 
        zgeqh: 
        eFJAA: 
        goto HLDqb; 
        uRF3W: 
        $this->trigger_events( 
            "pre_change_password" 
        ); 
        goto fmIxq; 
        eckoD: 
        return false; 
        goto zEu2_; 
        vChn0: 
        $this->trigger_events([ 
            "post_change_password", 
            "post_change_password_unsuccessful", 
        ]); 
        goto eckoD; 
        zEu2_: 
        OCsjx: 
        goto tgwR3; 
        OC4xU: 
        $this->set_message( 
            "password_change_successful" 
        ); 
        goto Swt2m; 
        qD5ea: 
        return $return; 
        goto e0xSG; 
        NfT3r: 
        $this->trigger_events([ 
            "post_change_password", 
            "post_change_password_unsuccessful", 
        ]); 
        goto vzRnk; 
        EafyK: 
        if ($return) { 
            goto eFJAA; 
        } 
        goto NfT3r; 
        D5OjS: 
        goto H6Mde; 
        goto zgeqh; 
        tgwR3: 
        $return = $this->_set_password_db($identity, $new); 
        goto EafyK; 
        e0xSG: 
    } 
    public function change_password($identity, $old, $new) 
    { 
        goto mUbm3; 
        PTRwI: 
        $this->set_error( 
            "password_change_unsuccessful" 
        ); 
        goto oilZo; 
        l5Jqg: 
        $this->set_error( 
            "password_change_unsuccessful" 
        ); 
        goto kD2IS; 
        desz2: 
        if (!($query->num_rows() !== 1)) { 
            goto sIG8E; 
        } 
        goto kShpZ; 
        sGdh_: 
        $this->trigger_events([ 
            "post_change_password", 
            "post_change_password_unsuccessful", 
        ]); 
        goto kjhXQ; 
        PozLC: 
        sIG8E: 
        goto gEcQL; 
        kShpZ: 
        $this->trigger_events([ 
            "post_change_password", 
            "post_change_password_unsuccessful", 
        ]); 
        goto PTRwI; 
        oilZo: 
        return false; 
        goto PozLC; 
        gEcQL: 
        $user = $query->row(); 
        goto KCKWj; 
        KCKWj: 
        if (!$this->verify_password($old, $user->password, $identity)) { 
            goto HZERS; 
        } 
        goto fKE6Y; 
        eAOtL: 
        $this->set_message( 
            "password_change_successful" 
        ); 
        goto WlVJL; 
        xHTkz: 
        return $result; 
        goto Sfko_; 
        WlVJL: 
        ERGbF: 
        goto xHTkz; 
        Sfko_: 
        HZERS: 
        goto l5Jqg; 
        fKE6Y: 
        $result = $this->_set_password_db($identity, $new); 
        goto tb0In; 
        dRDLT: 
        $query = $this->db 
            ->select("id, password") 
            ->where($this->identity_column, $identity) 
            ->limit(1) 
            ->order_by("id", "desc") 
            ->get($this->tables["users"]); 
        goto desz2; 
        tb0In: 
        if ($result) { 
            goto nWvu7; 
        } 
        goto sGdh_; 
        du0vt: 
        goto ERGbF; 
        goto akX_X; 
        akX_X: 
        nWvu7: 
        goto gMe0m; 
        mUbm3: 
        $this->trigger_events( 
            "pre_change_password" 
        ); 
        goto swSWf; 
        gMe0m: 
        $this->trigger_events([ 
            "post_change_password", 
            "post_change_password_successful", 
        ]); 
        goto eAOtL; 
        swSWf: 
        $this->trigger_events("extra_where"); 
        goto dRDLT; 
        kD2IS: 
        return false; 
        goto dVqIB; 
        kjhXQ: 
        $this->set_error( 
            "password_change_unsuccessful" 
        ); 
        goto du0vt; 
        dVqIB: 
    } 
    public function username_check($username = "") 
    { 
        goto uX5Dm; 
        YzV7n: 
        if (!empty($username)) { 
            goto BjOMR; 
        } 
        goto wI7Pi; 
        xfUOk: 
        $this->trigger_events("extra_where"); 
        goto BLuhO; 
        BLuhO: 
        return $this->db 
            ->where("username", $username) 
            ->limit(1) 
            ->count_all_results($this->tables["users"]) > 0; 
        goto MF02D; 
        uX5Dm: 
        $this->trigger_events( 
            "username_check" 
        ); 
        goto YzV7n; 
        wI7Pi: 
        return false; 
        goto ladNj; 
        ladNj: 
        BjOMR: 
        goto xfUOk; 
        MF02D: 
    } 
    public function email_check($email = "") 
    { 
        goto zD1tV; 
        RpzVZ: 
        VpJS2: 
        goto Tiec8; 
        DUtNr: 
        return false; 
        goto RpzVZ; 
        f4rix: 
        if (!empty($email)) { 
            goto VpJS2; 
        } 
        goto DUtNr; 
        RQUL0: 
        return $this->db 
            ->where("email", $email) 
            ->limit(1) 
            ->count_all_results($this->tables["users"]) > 0; 
        goto BGHlz; 
        zD1tV: 
        $this->trigger_events("email_check"); 
        goto f4rix; 
        Tiec8: 
        $this->trigger_events("extra_where"); 
        goto RQUL0; 
        BGHlz: 
    } 
    public function identity_check($identity = "") 
    { 
        goto roxUt; 
        S8GpD: 
        return $this->db 
            ->where($this->identity_column, $identity) 
            ->limit(1) 
            ->count_all_results($this->tables["users"]) > 0; 
        goto sbei0; 
        PbFtR: 
        return false; 
        goto b_E3a; 
        A0xLa: 
        if (!empty($identity)) { 
            goto RnRkv; 
        } 
        goto PbFtR; 
        roxUt: 
        $this->trigger_events( 
            "identity_check" 
        ); 
        goto A0xLa; 
        b_E3a: 
        RnRkv: 
        goto S8GpD; 
        sbei0: 
    } 
    public function get_user_id_from_identity($identity = "") 
    { 
        goto uVI3b; 
        uVI3b: 
        if (!empty($identity)) { 
            goto xu9F3; 
        } 
        goto fLcwT; 
        scgUL: 
        $user = $query->row(); 
        goto vFkWk; 
        hHvs0: 
        xu9F3: 
        goto ewMdH; 
        fLcwT: 
        return false; 
        goto hHvs0; 
        ewMdH: 
        $query = $this->db 
            ->select("id") 
            ->where($this->identity_column, $identity) 
            ->limit(1) 
            ->get($this->tables["users"]); 
        goto ISuCj; 
        Q3_ff: 
        return false; 
        goto kJ21l; 
        vFkWk: 
        return $user->id; 
        goto loUwT; 
        kJ21l: 
        DVSay: 
        goto scgUL; 
        ISuCj: 
        if (!($query->num_rows() !== 1)) { 
            goto DVSay; 
        } 
        goto Q3_ff; 
        loUwT: 
    } 
    public function forgotten_password($identity) 
    { 
        goto F6Lfs; 
        BS1B3: 
        $this->trigger_events("extra_where"); 
        goto M_hdG; 
        nz6M8: 
        AqYmH: 
        goto LMYjT; 
        F2BEo: 
        $update = [ 
            "forgotten_password_selector" => 
                $token->selector, 
            "forgotten_password_code" => 
                $token->validator_hashed, 
            "forgotten_password_time" => time(), 
        ]; 
        goto BS1B3; 
        sl07i: 
        $this->trigger_events([ 
            "post_forgotten_password", 
            "post_forgotten_password_unsuccessful", 
        ]); 
        goto yhIdj; 
        H2zD3: 
        L1E_S: 
        goto agwZt; 
        NugUY: 
        if ($this->db->affected_rows() === 1) { 
            goto HQNn2; 
        } 
        goto AvvHY; 
        F6Lfs: 
        if (!empty($identity)) { 
            goto AqYmH; 
        } 
        goto sl07i; 
        AvvHY: 
        $this->trigger_events([ 
            "post_forgotten_password", 
            "post_forgotten_password_unsuccessful", 
        ]); 
        goto KkjrU; 
        rsSQ0: 
        goto L1E_S; 
        goto pWyBv; 
        KkjrU: 
        return false; 
        goto rsSQ0; 
        M_hdG: 
        $this->db->update($this->tables["users"], $update, [ 
            $this->identity_column => $identity, 
        ]); 
        goto NugUY; 
        DjlAF: 
        return $token->user_code; 
        goto H2zD3; 
        yhIdj: 
        return false; 
        goto nz6M8; 
        pWyBv: 
        HQNn2: 
        goto CjMqU; 
        LMYjT: 
        $token = $this->_generate_selector_validator_couple(20, 80); 
        goto F2BEo; 
        CjMqU: 
        $this->trigger_events([ 
            "post_forgotten_password", 
            "post_forgotten_password_successful", 
        ]); 
        goto DjlAF; 
        agwZt: 
    } 
    public function get_user_by_forgotten_password_code($user_code) 
    { 
        goto g87FE; 
        g87FE: 
        $token = $this->_retrieve_selector_validator_couple($user_code); 
        goto wv1X9; 
        UOzpr: 
        if (!$user) { 
            goto CdhAY; 
        } 
        goto egjTc; 
        BMiLm: 
        CdhAY: 
        goto zgCZR; 
        wv1X9: 
        $user = $this->where( 
            "forgotten_password_selector", 
            $token->selector 
        ) 
            ->users() 
            ->row(); 
        goto UOzpr; 
        egjTc: 
        if ( 
            !$this->verify_password( 
                $token->validator, 
                $user->forgotten_password_code 
            ) 
        ) { 
            goto j9E82; 
        } 
        goto DOGuY; 
        c6_Vp: 
        j9E82: 
        goto BMiLm; 
        zgCZR: 
        return false; 
        goto LVtbq; 
        DOGuY: 
        return $user; 
        goto c6_Vp; 
        LVtbq: 
    } 
    public function register( 
        $identity, 
        $password, 
        $email, 
        $additional_data = [], 
        $groups = [] 
    ) { 
        goto MIfcM; 
        u3l7x: 
        foreach ($groups as $group) { 
            $this->add_to_group($group, $id); 
            ph9HA: 
        } 
        goto HkjmS; 
        c2YPK: 
        if (!($password === false)) { 
            goto tMpwl; 
        } 
        goto ct80J; 
        yCs5U: 
        $password = $this->hash_password($password); 
        goto c2YPK; 
        l_pTL: 
        return isset($id) ? $id : false; 
        goto Y9FYA; 
        HmKcv: 
        $query = $this->db 
            ->get_where( 
                $this->tables["groups"], 
                [ 
                    "name" => $this->config->item( 
                        "default_group", 
                        "ion_auth" 
                    ), 
                ], 
                1 
            ) 
            ->row(); 
        goto Vi7qa; 
        HkjmS: 
        DYvl2: 
        goto NM0EP; 
        WHc5M: 
        return false; 
        goto FDoui; 
        zjgDm: 
        $data = [ 
            $this->identity_column => $identity, 
            "username" => $identity, 
            "password" => $password, 
            "email" => $email, 
            "ip_address" => $ip_address, 
            "created_on" => time(), 
            "active" => $manual_activation === false ? 1 : 0, 
        ]; 
        goto vdxKq; 
        Hkyxz: 
        $groups[] = $default_group->id; 
        goto lM_BI; 
        h3cf_: 
        tMpwl: 
        goto zjgDm; 
        WZ2Ib: 
        $this->set_error( 
            "account_creation_missing_default_group" 
        ); 
        goto WHc5M; 
        eJldb: 
        $id = $this->db->insert_id( 
            $this->tables["users"] . 
                "_id_seq" 
        ); 
        goto eGqVr; 
        pib8k: 
        goto JpKbU; 
        goto AoEOh; 
        D2Wyo: 
        jWlCC: 
        goto d7L6D; 
        NM0EP: 
        pIjyo: 
        goto zU_aL; 
        eGqVr: 
        if (!(isset($default_group->id) && empty($groups))) { 
            goto wzXcS; 
        } 
        goto Hkyxz; 
        ct80J: 
        $this->set_error( 
            "account_creation_unsuccessful" 
        ); 
        goto usejn; 
        InkPp: 
        if ($this->identity_check($identity)) { 
            goto FtFH_; 
        } 
        goto kqxmG; 
        kqxmG: 
        if ( 
            !( 
                !$this->config->item( 
                    "default_group", 
                    "ion_auth" 
                ) && empty($groups) 
            ) 
        ) { 
            goto qkdMb; 
        } 
        goto WZ2Ib; 
        MIfcM: 
        $this->trigger_events( 
            "pre_register" 
        ); 
        goto ZTL6U; 
        VYA16: 
        $this->db->insert($this->tables["users"], $user_data); 
        goto eJldb; 
        RWgFU: 
        $this->trigger_events("extra_set"); 
        goto VYA16; 
        usejn: 
        return false; 
        goto h3cf_; 
        zU_aL: 
        $this->trigger_events( 
            "post_register" 
        ); 
        goto l_pTL; 
        vdxKq: 
        $user_data = array_merge( 
            $this->_filter_data( 
                $this->tables["users"], 
                $additional_data 
            ), 
            $data 
        ); 
        goto RWgFU; 
        KnPdj: 
        return false; 
        goto zwOmj; 
        KKxlH: 
        $this->set_error( 
            "account_creation_duplicate_identity" 
        ); 
        goto KnPdj; 
        lM_BI: 
        wzXcS: 
        goto YL0eK; 
        ZTL6U: 
        $manual_activation = $this->config->item( 
            "manual_activation", 
            "ion_auth" 
        ); 
        goto InkPp; 
        g4iqU: 
        $this->set_error( 
            "account_creation_invalid_default_group" 
        ); 
        goto BzKbQ; 
        zwOmj: 
        JpKbU: 
        goto HmKcv; 
        YxXs3: 
        $ip_address = $this->input->ip_address(); 
        goto yCs5U; 
        AoEOh: 
        FtFH_: 
        goto KKxlH; 
        d7L6D: 
        $default_group = $query; 
        goto YxXs3; 
        FDoui: 
        qkdMb: 
        goto pib8k; 
        BzKbQ: 
        return false; 
        goto D2Wyo; 
        Vi7qa: 
        if (!(!isset($query->id) && empty($groups))) { 
            goto jWlCC; 
        } 
        goto g4iqU; 
        YL0eK: 
        if (empty($groups)) { 
            goto pIjyo; 
        } 
        goto u3l7x; 
        Y9FYA: 
    } 
    public function login($identity, $password, $remember = false) 
    { 
        goto hxwEi; 
        EsBM8: 
        O7fma: 
        goto P6UmR; 
        CR3gh: 
        $this->set_session($user); 
        goto KncO0; 
        yncn3: 
        goto v3Pe8; 
        goto mQoM9; 
        ensJY: 
        ejtwJ: 
        goto PigcR; 
        yLESw: 
        $this->clear_remember_code($identity); 
        goto yncn3; 
        PigcR: 
        if (!($query->num_rows() === 1)) { 
            goto tikT_; 
        } 
        goto U9eOw; 
        hxwEi: 
        $this->trigger_events("pre_login"); 
        goto uKXMH; 
        P6UmR: 
        $this->rehash_password_if_needed($user->password, $identity, $password); 
        goto S1Ad7; 
        UpQta: 
        $this->trigger_events([ 
            "post_login", 
            "post_login_successful", 
        ]); 
        goto zDoWp; 
        KncO0: 
        $this->update_last_login($user->id); 
        goto DWmC2; 
        x4KaQ: 
        return false; 
        goto ensJY; 
        HOseE: 
        return false; 
        goto wufQC; 
        uq276: 
        $this->set_error( 
            "login_timeout" 
        ); 
        goto x4KaQ; 
        C9giy: 
        fosCR: 
        goto CR3gh; 
        YkGD4: 
        v3Pe8: 
        goto EsBM8; 
        abTnF: 
        $this->remember_user($identity); 
        goto YkGD4; 
        mQoM9: 
        dDQ7N: 
        goto abTnF; 
        zh0Pl: 
        $this->hash_password($password); 
        goto UZ6gq; 
        I42Nc: 
        $this->trigger_events("extra_where"); 
        goto J1xPP; 
        UZ6gq: 
        $this->increase_login_attempts($identity); 
        goto N1ooZ; 
        yILc2: 
        if (!$this->is_max_login_attempts_exceeded($identity)) { 
            goto ejtwJ; 
        } 
        goto v1Pju; 
        kUzQy: 
        if ( 
            !$this->config->item( 
                "remember_users", 
                "ion_auth" 
            ) 
        ) { 
            goto O7fma; 
        } 
        goto x25cx; 
        N1ooZ: 
        $this->trigger_events( 
            "post_login_unsuccessful" 
        ); 
        goto Nr7Jz; 
        jmE2A: 
        if (!$this->verify_password($password, $user->password, $identity)) { 
            goto fkCTv; 
        } 
        goto pjbv3; 
        YQ22O: 
        $this->trigger_events( 
            "post_login_unsuccessful" 
        ); 
        goto uq276; 
        U9eOw: 
        $user = $query->row(); 
        goto jmE2A; 
        pjbv3: 
        if (!($user->active == 0)) { 
            goto fosCR; 
        } 
        goto JhXvR; 
        zDoWp: 
        $this->set_message( 
            "login_successful" 
        ); 
        goto C3MmD; 
        v1Pju: 
        $this->hash_password($password); 
        goto YQ22O; 
        f1Gd_: 
        return false; 
        goto MnLLA; 
        Nr7Jz: 
        $this->set_error( 
            "login_unsuccessful" 
        ); 
        goto HOseE; 
        jx4Hh: 
        fkCTv: 
        goto mXTHS; 
        H2r4J: 
        $this->set_error( 
            "login_unsuccessful" 
        ); 
        goto f1Gd_; 
        DWmC2: 
        $this->clear_login_attempts($identity); 
        goto mq33g; 
        J1xPP: 
        $query = $this->db 
            ->select( 
                $this->identity_column . 
                    ", email, id, password, active, last_login" 
            ) 
            ->where($this->identity_column, $identity) 
            ->limit(1) 
            ->order_by("id", "desc") 
            ->get($this->tables["users"]); 
        goto yILc2; 
        C3MmD: 
        return true; 
        goto jx4Hh; 
        mq33g: 
        $this->clear_forgotten_password_code($identity); 
        goto kUzQy; 
        A4xjV: 
        $this->set_error( 
            "login_unsuccessful_not_active" 
        ); 
        goto vLPZW; 
        mXTHS: 
        tikT_: 
        goto zh0Pl; 
        uKXMH: 
        if (!(empty($identity) || empty($password))) { 
            goto LV96I; 
        } 
        goto H2r4J; 
        x25cx: 
        if ($remember) { 
            goto dDQ7N; 
        } 
        goto yLESw; 
        S1Ad7: 
        $this->session->sess_regenerate(false); 
        goto UpQta; 
        JhXvR: 
        $this->trigger_events( 
            "post_login_unsuccessful" 
        ); 
        goto A4xjV; 
        MnLLA: 
        LV96I: 
        goto I42Nc; 
        vLPZW: 
        return false; 
        goto C9giy; 
        wufQC: 
    } 
    public function recheck_session() 
    { 
        goto WT_hm; 
        vUIAA: 
        K5YTD: 
        goto h4YB9; 
        WT_hm: 
        $recheck = 
            null !== 
            $this->config->item( 
                "recheck_timer", 
                "ion_auth" 
            ) 
                ? $this->config->item( 
                    "recheck_timer", 
                    "ion_auth" 
                ) 
                : 0; 
        goto JbFDO; 
        trr3e: 
        goto rjf4G; 
        goto ABgf0; 
        DEs50: 
        if ($query->num_rows() === 1) { 
            goto NV8m_; 
        } 
        goto K89uF; 
        JwPhi: 
        return false; 
        goto trr3e; 
        kAB5Y: 
        rjf4G: 
        goto vUIAA; 
        GIxKO: 
        $last_login = $this->session->userdata( 
            "last_check" 
        ); 
        goto mJ_xU; 
        h4YB9: 
        D05m_: 
        goto kAIc9; 
        XBK_P: 
        $query = $this->db 
            ->select("id") 
            ->where([ 
                $this->identity_column => $this->session->userdata( 
                    "identity" 
                ), 
                "active" => "1", 
            ]) 
            ->limit(1) 
            ->order_by("id", "desc") 
            ->get($this->tables["users"]); 
        goto DEs50; 
        mJ_xU: 
        if (!($last_login + $recheck < time())) { 
            goto K5YTD; 
        } 
        goto XBK_P; 
        PAynh: 
        $this->session->set_userdata( 
            "last_check", 
            time() 
        ); 
        goto kAB5Y; 
        Hn6Ww: 
        $identity = $this->config->item( 
            "identity", 
            "ion_auth" 
        ); 
        goto CBXxX; 
        ABgf0: 
        NV8m_: 
        goto PAynh; 
        kAIc9: 
        return (bool) $this->session->userdata( 
            "identity" 
        ); 
        goto GAXQo; 
        JbFDO: 
        if (!($recheck !== 0)) { 
            goto D05m_; 
        } 
        goto GIxKO; 
        CBXxX: 
        $this->session->unset_userdata([ 
            $identity, 
            "id", 
            "user_id", 
        ]); 
        goto JwPhi; 
        K89uF: 
        $this->trigger_events("logout"); 
        goto Hn6Ww; 
        GAXQo: 
    } 
    public function is_max_login_attempts_exceeded( 
        $identity, 
        $ip_address = null 
    ) { 
        goto kpge_; 
        ZBr06: 
        t0pGb: 
        goto kFmMA; 
        grEv9: 
        return $attempts >= $max_attempts; 
        goto ZBr06; 
        F6bjr: 
        $max_attempts = $this->config->item( 
            "maximum_login_attempts", 
            "ion_auth" 
        ); 
        goto k33uU; 
        kFmMA: 
        ChwVj: 
        goto OH8fL; 
        k33uU: 
        if (!($max_attempts > 0)) { 
            goto t0pGb; 
        } 
        goto ycyLD; 
        ycyLD: 
        $attempts = $this->get_attempts_num($identity, $ip_address); 
        goto grEv9; 
        kpge_: 
        if ( 
            !$this->config->item( 
                "track_login_attempts", 
                "ion_auth" 
            ) 
        ) { 
            goto ChwVj; 
        } 
        goto F6bjr; 
        OH8fL: 
        return false; 
        goto aDnnD; 
        aDnnD: 
    } 
    public function get_attempts_num($identity, $ip_address = null) 
    { 
        goto pTTDp; 
        W3njJ: 
        if ( 
            !$this->config->item( 
                "track_login_ip_address", 
                "ion_auth" 
            ) 
        ) { 
            goto xYbu2; 
        } 
        goto tpM8U; 
        tpM8U: 
        if (isset($ip_address)) { 
            goto vvvF7; 
        } 
        goto enU73; 
        v8uPd: 
        M5zmi: 
        goto Axxuc; 
        mZVbu: 
        $qres = $this->db->get( 
            $this->tables[ 
                "login_attempts" 
            ] 
        ); 
        goto xAvNV; 
        enU73: 
        $ip_address = $this->input->ip_address(); 
        goto URaBB; 
        URaBB: 
        vvvF7: 
        goto eKDCs; 
        pTTDp: 
        if ( 
            !$this->config->item( 
                "track_login_attempts", 
                "ion_auth" 
            ) 
        ) { 
            goto M5zmi; 
        } 
        goto wR_Z8; 
        wR_Z8: 
        $this->db->select("1", false); 
        goto MQLIH; 
        bmYz2: 
        xYbu2: 
        goto nW4nI; 
        nW4nI: 
        $this->db->where( 
            "time >", 
            time() - 
                $this->config->item( 
                    "lockout_time", 
                    "ion_auth" 
                ), 
            false 
        ); 
        goto mZVbu; 
        xAvNV: 
        return $qres->num_rows(); 
        goto v8uPd; 
        Axxuc: 
        return 0; 
        goto OGoIS; 
        MQLIH: 
        $this->db->where("login", $identity); 
        goto W3njJ; 
        eKDCs: 
        $this->db->where( 
            "ip_address", 
            $ip_address 
        ); 
        goto bmYz2; 
        OGoIS: 
    } 
    public function get_last_attempt_time($identity, $ip_address = null) 
    { 
        goto j5OaN; 
        mJdjX: 
        $ip_address = $this->input->ip_address(); 
        goto CVXTW; 
        j5OaN: 
        if ( 
            !$this->config->item( 
                "track_login_attempts", 
                "ion_auth" 
            ) 
        ) { 
            goto tlm3D; 
        } 
        goto L_mEh; 
        hEscl: 
        $this->db->order_by("id", "desc"); 
        goto JXcy_; 
        j9xCb: 
        eUwyk: 
        goto w2N9H; 
        fb1PI: 
        $this->db->where( 
            "ip_address", 
            $ip_address 
        ); 
        goto U8Bxc; 
        JXcy_: 
        $qres = $this->db->get( 
            $this->tables[ 
                "login_attempts" 
            ], 
            1 
        ); 
        goto NSdpT; 
        NSdpT: 
        if (!($qres->num_rows() > 0)) { 
            goto eUwyk; 
        } 
        goto ToW84; 
        L_mEh: 
        $this->db->select("time"); 
        goto rFoQ0; 
        rFoQ0: 
        $this->db->where("login", $identity); 
        goto SpXMe; 
        CVXTW: 
        eEPoM: 
        goto fb1PI; 
        PrZtt: 
        if (isset($ip_address)) { 
            goto eEPoM; 
        } 
        goto mJdjX; 
        w2N9H: 
        tlm3D: 
        goto uWBX0; 
        ToW84: 
        return $qres->row()->time; 
        goto j9xCb; 
        U8Bxc: 
        srQ4A: 
        goto hEscl; 
        uWBX0: 
        return 0; 
        goto JjJKc; 
        SpXMe: 
        if ( 
            !$this->config->item( 
                "track_login_ip_address", 
                "ion_auth" 
            ) 
        ) { 
            goto srQ4A; 
        } 
        goto PrZtt; 
        JjJKc: 
    } 
    public function get_last_attempt_ip($identity) 
    { 
        goto HUZ3q; 
        hvm63: 
        mYELs: 
        goto q1jSi; 
        MEScp: 
        $this->db->where("login", $identity); 
        goto lZsf9; 
        lZsf9: 
        $this->db->order_by("id", "desc"); 
        goto y0WG7; 
        DSneM: 
        return ""; 
        goto eVVwd; 
        rfBnv: 
        $this->db->select("ip_address"); 
        goto MEScp; 
        y0WG7: 
        $qres = $this->db->get( 
            $this->tables[ 
                "login_attempts" 
            ], 
            1 
        ); 
        goto SpKQ5; 
        q1jSi: 
        nv5Sl: 
        goto DSneM; 
        SpKQ5: 
        if (!($qres->num_rows() > 0)) { 
            goto mYELs; 
        } 
        goto lFdrW; 
        HUZ3q: 
        if ( 
            !( 
                $this->config->item( 
                    "track_login_attempts", 
                    "ion_auth" 
                ) && 
                $this->config->item( 
                    "track_login_ip_address", 
                    "ion_auth" 
                ) 
            ) 
        ) { 
            goto nv5Sl; 
        } 
        goto rfBnv; 
        lFdrW: 
        return $qres->row()->ip_address; 
        goto hvm63; 
        eVVwd: 
    } 
    public function increase_login_attempts($identity) 
    { 
        goto pi_3Z; 
        pi_3Z: 
        if ( 
            !$this->config->item( 
                "track_login_attempts", 
                "ion_auth" 
            ) 
        ) { 
            goto bUIit; 
        } 
        goto YmEFR; 
        HkRWW: 
        UuxId: 
        goto AIz1X; 
        PQTP_: 
        if ( 
            !$this->config->item( 
                "track_login_ip_address", 
                "ion_auth" 
            ) 
        ) { 
            goto UuxId; 
        } 
        goto aYMUZ; 
        zO4rb: 
        bUIit: 
        goto TGT_2; 
        aYMUZ: 
        $data[ 
            "ip_address" 
        ] = $this->input->ip_address(); 
        goto HkRWW; 
        YmEFR: 
        $data = [ 
            "ip_address" => "", 
            "login" => $identity, 
            "time" => time(), 
        ]; 
        goto PQTP_; 
        AIz1X: 
        return $this->db->insert( 
            $this->tables[ 
                "login_attempts" 
            ], 
            $data 
        ); 
        goto zO4rb; 
        TGT_2: 
        return false; 
        goto XivJK; 
        XivJK: 
    } 
    public function clear_login_attempts( 
        $identity, 
        $old_attempts_expire_period = 86400, 
        $ip_address = null 
    ) { 
        goto pG_Ld; 
        yMBVK: 
        $this->db->where( 
            "ip_address", 
            $ip_address 
        ); 
        goto V1frP; 
        jlAVm: 
        $old_attempts_expire_period = max( 
            $old_attempts_expire_period, 
            $this->config->item( 
                "lockout_time", 
                "ion_auth" 
            ) 
        ); 
        goto UfjeY; 
        V1frP: 
        VSrzk: 
        goto Yw4wV; 
        li5TH: 
        return false; 
        goto QzR7N; 
        h_BpS: 
        Oqt34: 
        goto li5TH; 
        Yw4wV: 
        $this->db->or_where( 
            "time <", 
            time() - $old_attempts_expire_period, 
            false 
        ); 
        goto ooUw_; 
        I0Jk9: 
        if (isset($ip_address)) { 
            goto zY24z; 
        } 
        goto NUzUf; 
        ZHgj4: 
        zY24z: 
        goto yMBVK; 
        ooUw_: 
        return $this->db->delete( 
            $this->tables[ 
                "login_attempts" 
            ] 
        ); 
        goto h_BpS; 
        gMRAj: 
        if ( 
            !$this->config->item( 
                "track_login_ip_address", 
                "ion_auth" 
            ) 
        ) { 
            goto VSrzk; 
        } 
        goto I0Jk9; 
        pG_Ld: 
        if ( 
            !$this->config->item( 
                "track_login_attempts", 
                "ion_auth" 
            ) 
        ) { 
            goto Oqt34; 
        } 
        goto jlAVm; 
        NUzUf: 
        $ip_address = $this->input->ip_address(); 
        goto ZHgj4; 
        UfjeY: 
        $this->db->where("login", $identity); 
        goto gMRAj; 
        QzR7N: 
    } 
    public function limit($limit) 
    { 
        goto l7Q0v; 
        TfNC5: 
        return $this; 
        goto U2Bof; 
        l7Q0v: 
        $this->trigger_events("limit"); 
        goto voP9r; 
        voP9r: 
        $this->_ion_limit = $limit; 
        goto TfNC5; 
        U2Bof: 
    } 
    public function offset($offset) 
    { 
        goto p51oi; 
        PNv1_: 
        $this->_ion_offset = $offset; 
        goto SdcWx; 
        SdcWx: 
        return $this; 
        goto obL_z; 
        p51oi: 
        $this->trigger_events("offset"); 
        goto PNv1_; 
        obL_z: 
    } 
    public function where($where, $value = null) 
    { 
        goto Y7LG5; 
        Y7LG5: 
        $this->trigger_events("where"); 
        goto oJOgx; 
        oJOgx: 
        if (is_array($where)) { 
            goto DDrIk; 
        } 
        goto z7Mj_; 
        z7Mj_: 
        $where = [$where => $value]; 
        goto u_GfG; 
        u_GfG: 
        DDrIk: 
        goto PwUDT; 
        PwUDT: 
        array_push($this->_ion_where, $where); 
        goto iyPmw; 
        iyPmw: 
        return $this; 
        goto yuZ8q; 
        yuZ8q: 
    } 
    public function like($like, $value = null, $position = "both") 
    { 
        goto aoM3V; 
        aoM3V: 
        $this->trigger_events("like"); 
        goto ikqLI; 
        ikqLI: 
        array_push($this->_ion_like, [ 
            "like" => $like, 
            "value" => $value, 
            "position" => $position, 
        ]); 
        goto S8yt9; 
        S8yt9: 
        return $this; 
        goto M3Ssn; 
        M3Ssn: 
    } 
    public function select($select) 
    { 
        goto dU7E4; 
        dU7E4: 
        $this->trigger_events("select"); 
        goto QzicS; 
        KEm5M: 
        return $this; 
        goto N5_7F; 
        QzicS: 
        $this->_ion_select[] = $select; 
        goto KEm5M; 
        N5_7F: 
    } 
    public function order_by($by, $order = "desc") 
    { 
        goto ONkOl; 
        rpcQi: 
        $this->_ion_order = $order; 
        goto FlEeO; 
        FlEeO: 
        return $this; 
        goto tKvre; 
        dw9jM: 
        $this->_ion_order_by = $by; 
        goto rpcQi; 
        ONkOl: 
        $this->trigger_events("order_by"); 
        goto dw9jM; 
        tKvre: 
    } 
    public function row() 
    { 
        goto MAP9A; 
        WGixa: 
        $row = $this->response->row(); 
        goto nGuDj; 
        MAP9A: 
        $this->trigger_events("row"); 
        goto WGixa; 
        nGuDj: 
        return $row; 
        goto jL9gG; 
        jL9gG: 
    } 
    public function row_array() 
    { 
        goto nw90y; 
        ncatd: 
        return $row; 
        goto g1Mma; 
        nw90y: 
        $this->trigger_events([ 
            "row", 
            "row_array", 
        ]); 
        goto kfAiM; 
        kfAiM: 
        $row = $this->response->row_array(); 
        goto ncatd; 
        g1Mma: 
    } 
    public function result() 
    { 
        goto gtf1L; 
        ruU6H: 
        $result = $this->response->result(); 
        goto BpD29; 
        BpD29: 
        return $result; 
        goto NBMr_; 
        gtf1L: 
        $this->trigger_events("result"); 
        goto ruU6H; 
        NBMr_: 
    } 
    public function result_array() 
    { 
        goto c8TW6; 
        vAV4g: 
        return $result; 
        goto joqBF; 
        c8TW6: 
        $this->trigger_events([ 
            "result", 
            "result_array", 
        ]); 
        goto i0ccT; 
        i0ccT: 
        $result = $this->response->result_array(); 
        goto vAV4g; 
        joqBF: 
    } 
    public function num_rows() 
    { 
        goto NWEzy; 
        NWEzy: 
        $this->trigger_events(["num_rows"]); 
        goto h3QOO; 
        Hi275: 
        return $result; 
        goto DSjIN; 
        h3QOO: 
        $result = $this->response->num_rows(); 
        goto Hi275; 
        DSjIN: 
    } 
    public function users($groups = null) 
    { 
        goto Y364V; 
        JyBQr: 
        $this->response = $this->db->get($this->tables["users"]); 
        goto j7Fhj; 
        HNC9b: 
        $this->db->join( 
            $this->tables["users_groups"], 
            $this->tables["users_groups"] . 
                "." . 
                $this->join["users"] . 
                "=" . 
                $this->tables["users"] . 
                ".id", 
            "inner" 
        ); 
        goto joXMx; 
        Bhd1N: 
        VUmJa: 
        goto audrP; 
        FrRwo: 
        $this->_ion_select = []; 
        goto MMPtm; 
        klhcP: 
        $this->_ion_order = null; 
        goto CJgmh; 
        ZhK_z: 
        if (empty($group_names)) { 
            goto VUmJa; 
        } 
        goto rG15t; 
        klmzT: 
        $this->_ion_limit = null; 
        goto WJ_y0; 
        FCdpX: 
        $this->db->limit($this->_ion_limit); 
        goto klmzT; 
        u6Y6S: 
        $this->_ion_like = []; 
        goto A61It; 
        CJgmh: 
        $this->_ion_order_by = null; 
        goto C7ydp; 
        ULdB6: 
        if (!(isset($this->_ion_order_by) && isset($this->_ion_order))) { 
            goto bZAwI; 
        } 
        goto hi4Zc; 
        aBMOT: 
        $group_ids = []; 
        goto GYvoo; 
        UAdad: 
        $this->_ion_limit = null; 
        goto A0FcU; 
        vKGHg: 
        if (!isset($groups)) { 
            goto Jnp6P; 
        } 
        goto G6S3j; 
        PDxss: 
        goto BryVU; 
        goto BB0Jn; 
        vwL9O: 
        Jnp6P: 
        goto pKLg7; 
        GCssq: 
        foreach ($this->_ion_select as $select) { 
            $this->db->select($select); 
            PtzjD: 
        } 
        goto Al0wR; 
        BB0Jn: 
        XvqFr: 
        goto LekAI; 
        rG15t: 
        $this->db->join( 
            $this->tables["groups"], 
            $this->tables["users_groups"] . 
                "." . 
                $this->join["groups"] . 
                " = " . 
                $this->tables["groups"] . 
                ".id", 
            "inner" 
        ); 
        goto NAmj2; 
        kD31c: 
        BryVU: 
        goto ULdB6; 
        hi4Zc: 
        $this->db->order_by($this->_ion_order_by, $this->_ion_order); 
        goto klhcP; 
        PSfaS: 
        Z81cZ: 
        goto HQcyz; 
        MMPtm: 
        z8MVq: 
        goto vKGHg; 
        E1lET: 
        dKFtt: 
        goto u6Y6S; 
        j7Fhj: 
        return $this; 
        goto bey_b; 
        okqFW: 
        XTalR: 
        goto vj22b; 
        G6S3j: 
        if (is_array($groups)) { 
            goto XTalR; 
        } 
        goto YGpSh; 
        ZkKXm: 
        $this->db->{$or_where_in}( 
            $this->tables["users_groups"] . 
                "." . 
                $this->join["groups"], 
            $group_ids 
        ); 
        goto FD3TC; 
        n4IXz: 
        foreach ($this->_ion_like as $like) { 
            $this->db->or_like( 
                $like["like"], 
                $like["value"], 
                $like["position"] 
            ); 
            MKdTg: 
        } 
        goto E1lET; 
        g5ved: 
        $or_where_in = 
            !empty($group_ids) && !empty($group_names) 
                ? "or_where_in" 
                : "where_in"; 
        goto ZhK_z; 
        YGpSh: 
        $groups = [$groups]; 
        goto okqFW; 
        audrP: 
        if (empty($group_ids)) { 
            goto mIWQy; 
        } 
        goto ZkKXm; 
        zITMt: 
        if (!isset($this->_ion_limit)) { 
            goto EFi4J; 
        } 
        goto FCdpX; 
        ThQzb: 
        Hz1nd: 
        goto OatyK; 
        blNmN: 
        goto z8MVq; 
        goto zjG0U; 
        A61It: 
        OwJfU: 
        goto fPOrw; 
        gm9BX: 
        if (!(isset($this->_ion_where) && !empty($this->_ion_where))) { 
            goto Z81cZ; 
        } 
        goto GUkPQ; 
        vj22b: 
        if (!(isset($groups) && !empty($groups))) { 
            goto yzhgh; 
        } 
        goto X_z1X; 
        qdYQz: 
        if (isset($this->_ion_select) && !empty($this->_ion_select)) { 
            goto khLv9; 
        } 
        goto Lment; 
        HQcyz: 
        if (!(isset($this->_ion_like) && !empty($this->_ion_like))) { 
            goto OwJfU; 
        } 
        goto n4IXz; 
        hrPOy: 
        foreach ($groups as $group) { 
            goto vZoER; 
            gZa_H: 
            goto L7pzO; 
            goto FGv9o; 
            FGv9o: 
            IAL3i: 
            goto KmVxF; 
            fQs7n: 
            L7pzO: 
            goto K99Ox; 
            KmVxF: 
            $group_ids[] = $group; 
            goto fQs7n; 
            K99Ox: 
            WH80D: 
            goto znddm; 
            vZoER: 
            if (is_numeric($group)) { 
                goto IAL3i; 
            } 
            goto iBEqb; 
            iBEqb: 
            $group_names[] = $group; 
            goto gZa_H; 
            znddm: 
        } 
        goto K_D13; 
        pKLg7: 
        $this->trigger_events("extra_where"); 
        goto gm9BX; 
        Al0wR: 
        n10j2: 
        goto FrRwo; 
        GYvoo: 
        $group_names = []; 
        goto hrPOy; 
        Y364V: 
        $this->trigger_events("users"); 
        goto qdYQz; 
        fPOrw: 
        if (isset($this->_ion_limit) && isset($this->_ion_offset)) { 
            goto XvqFr; 
        } 
        goto zITMt; 
        WJ_y0: 
        EFi4J: 
        goto PDxss; 
        zjG0U: 
        khLv9: 
        goto GCssq; 
        X_z1X: 
        $this->db->distinct(); 
        goto HNC9b; 
        LekAI: 
        $this->db->limit($this->_ion_limit, $this->_ion_offset); 
        goto UAdad; 
        OatyK: 
        $this->_ion_where = []; 
        goto PSfaS; 
        joXMx: 
        yzhgh: 
        goto aBMOT; 
        GUkPQ: 
        foreach ($this->_ion_where as $where) { 
            $this->db->where($where); 
            sNeO_: 
        } 
        goto ThQzb; 
        FD3TC: 
        mIWQy: 
        goto vwL9O; 
        K_D13: 
        uy_4i: 
        goto g5ved; 
        Lment: 
        $this->db->select([ 
            $this->tables["users"] . ".*", 
            $this->tables["users"] . 
            ".id as id", 
            $this->tables["users"] . 
            ".id as user_id", 
        ]); 
        goto blNmN; 
        A0FcU: 
        $this->_ion_offset = null; 
        goto kD31c; 
        NAmj2: 
        $this->db->where_in( 
            $this->tables["groups"] . ".name", 
            $group_names 
        ); 
        goto Bhd1N; 
        C7ydp: 
        bZAwI: 
        goto JyBQr; 
        bey_b: 
    } 
    public function user($id = null) 
    { 
        goto kpGOu; 
        rx4cz: 
        $this->users(); 
        goto k0oIq; 
        ROSfA: 
        $this->where( 
            $this->tables["users"] . ".id", 
            $id 
        ); 
        goto rx4cz; 
        kpGOu: 
        $this->trigger_events("user"); 
        goto fNB5k; 
        UPIJP: 
        $this->limit(1); 
        goto EDXtE; 
        fNB5k: 
        $id = isset($id) 
            ? $id 
            : $this->session->userdata("user_id"); 
        goto UPIJP; 
        k0oIq: 
        return $this; 
        goto aso27; 
        EDXtE: 
        $this->order_by( 
            $this->tables["users"] . ".id", 
            "desc" 
        ); 
        goto ROSfA; 
        aso27: 
    } 
    public function get_users_groups($id = false) 
    { 
        goto Rz7ox; 
        Rz7ox: 
        $this->trigger_events( 
            "get_users_group" 
        ); 
        goto ieINE; 
        Jwtsu: 
        return $this->db 
            ->select( 
                $this->tables[ 
                    "users_groups" 
                ] . 
                    "." . 
                    $this->join["groups"] . 
                    " as id, " . 
                    $this->tables["groups"] . 
                    ".name, " . 
                    $this->tables["groups"] . 
                    ".description" 
            ) 
            ->where( 
                $this->tables[ 
                    "users_groups" 
                ] . 
                    "." . 
                    $this->join["users"], 
                $id 
            ) 
            ->join( 
                $this->tables["groups"], 
                $this->tables[ 
                    "users_groups" 
                ] . 
                    "." . 
                    $this->join["groups"] . 
                    "=" . 
                    $this->tables["groups"] . 
                    ".id" 
            ) 
            ->get( 
                $this->tables[ 
                    "users_groups" 
                ] 
            ); 
        goto BsyvA; 
        ieINE: 
        $id || ($id = $this->session->userdata("user_id")); 
        goto Jwtsu; 
        BsyvA: 
    } 
    public function in_group($check_group, $id = false, $check_all = false) 
    { 
        goto Sw7Tq; 
        h1aSH: 
        return $check_all; 
        goto eKMGW; 
        eClR1: 
        $id || ($id = $this->session->userdata("user_id")); 
        goto UNUMI; 
        dympe: 
        uC1yp: 
        goto AB4vd; 
        MIe5w: 
        goto nxQ0l; 
        goto RwQHg; 
        kJTwM: 
        A1RVi: 
        goto h1aSH; 
        IrFoA: 
        eMKdI: 
        goto c4_RA; 
        huZK6: 
        foreach ($users_groups as $group) { 
            $groups_array[$group->id] = $group->name; 
            Q8X2p: 
        } 
        goto IrFoA; 
        BhnFg: 
        $groups_array = $this->_cache_user_in_group[$id]; 
        goto Jc0yw; 
        VFFHn: 
        $check_group = [$check_group]; 
        goto dympe; 
        diAdp: 
        $groups_array = []; 
        goto huZK6; 
        Fnx2C: 
        foreach ($check_group as $key => $value) { 
            goto nlfji; 
            dxGGI: 
            uy8z0: 
            goto AtZ71; 
            AtZ71: 
            XTieh: 
            goto S7s9I; 
            NdrID: 
            return !$check_all; 
            goto dxGGI; 
            nlfji: 
            $groups = is_numeric($value) 
                ? array_keys($groups_array) 
                : $groups_array; 
            goto HuoWo; 
            HuoWo: 
            if (!(in_array($value, $groups) xor $check_all)) { 
                goto uy8z0; 
            } 
            goto NdrID; 
            S7s9I: 
        } 
        goto kJTwM; 
        AB4vd: 
        if (isset($this->_cache_user_in_group[$id])) { 
            goto JooCe; 
        } 
        goto pkbvL; 
        Sw7Tq: 
        $this->trigger_events("in_group"); 
        goto eClR1; 
        c4_RA: 
        $this->_cache_user_in_group[$id] = $groups_array; 
        goto MIe5w; 
        UNUMI: 
        if (is_array($check_group)) { 
            goto uC1yp; 
        } 
        goto VFFHn; 
        pkbvL: 
        $users_groups = $this->get_users_groups($id)->result(); 
        goto diAdp; 
        RwQHg: 
        JooCe: 
        goto BhnFg; 
        Jc0yw: 
        nxQ0l: 
        goto Fnx2C; 
        eKMGW: 
    } 
    public function add_to_group($group_ids, $user_id = false) 
    { 
        goto vgnE5; 
        P349a: 
        $group_ids = [$group_ids]; 
        goto J7QQ4; 
        vgnE5: 
        $this->trigger_events( 
            "add_to_group" 
        ); 
        goto kSbjV; 
        kSbjV: 
        $user_id || 
            ($user_id = $this->session->userdata( 
                "user_id" 
            )); 
        goto OMNWX; 
        Cbyfw: 
        dBwBB: 
        goto OL7Zo; 
        J7QQ4: 
        uQcAz: 
        goto nFpV9; 
        OL7Zo: 
        return $return; 
        goto iLzXX; 
        OMNWX: 
        if (is_array($group_ids)) { 
            goto uQcAz; 
        } 
        goto P349a; 
        DqNw1: 
        foreach ($group_ids as $group_id) { 
            goto hwujH; 
            Gdoda: 
            $return++; 
            goto T06yO; 
            X9PS_: 
            $group = $this->group($group_id)->result(); 
            goto Nmp3a; 
            LyAiA: 
            $this->_cache_user_in_group[$user_id][$group_id] = $group_name; 
            goto Gdoda; 
            Nmp3a: 
            $group_name = $group[0]->name; 
            goto tmB1B; 
            YWYAL: 
            if (isset($this->_cache_groups[$group_id])) { 
                goto u5EJk; 
            } 
            goto X9PS_; 
            tmB1B: 
            $this->_cache_groups[$group_id] = $group_name; 
            goto b3Ir5; 
            T06yO: 
            C93Se: 
            goto Dl4Au; 
            aeEvz: 
            vZySV: 
            goto LyAiA; 
            hwujH: 
            if ( 
                !$this->db->insert( 
                    $this->tables[ 
                        "users_groups" 
                    ], 
                    [ 
                        $this->join[ 
                            "groups" 
                        ] => (float) $group_id, 
                        $this->join["users"] => (float) $user_id, 
                    ] 
                ) 
            ) { 
                goto C93Se; 
            } 
            goto YWYAL; 
            b3Ir5: 
            goto vZySV; 
            goto W_bq1; 
            nWNrp: 
            $group_name = $this->_cache_groups[$group_id]; 
            goto aeEvz; 
            Dl4Au: 
            MRlb2: 
            goto hECuh; 
            W_bq1: 
            u5EJk: 
            goto nWNrp; 
            hECuh: 
        } 
        goto Cbyfw; 
        nFpV9: 
        $return = 0; 
        goto DqNw1; 
        iLzXX: 
    } 
    public function remove_from_group($group_ids = false, $user_id = false) 
    { 
        goto nJZ2k; 
        kMl1e: 
        if ( 
            !($return = $this->db->delete( 
                $this->tables[ 
                    "users_groups" 
                ], 
                [$this->join["users"] => (float) $user_id] 
            )) 
        ) { 
            goto lSH9I; 
        } 
        goto SeYcJ; 
        Sagrp: 
        goto Gg_Yr; 
        goto ytXZB; 
        SeYcJ: 
        $this->_cache_user_in_group[$user_id] = []; 
        goto LBdQU; 
        nC4LH: 
        if (is_array($group_ids)) { 
            goto WhfRP; 
        } 
        goto PK087; 
        RCubN: 
        if (!empty($user_id)) { 
            goto cbDYY; 
        } 
        goto MR_0r; 
        ERVC1: 
        return $return; 
        goto KOpw3; 
        PK087: 
        $group_ids = [$group_ids]; 
        goto Vaxfr; 
        ytXZB: 
        eVeOo: 
        goto nC4LH; 
        RzCjf: 
        mKoxO: 
        goto CL7e1; 
        t1VOQ: 
        cbDYY: 
        goto Ty8V7; 
        BNUpN: 
        Gg_Yr: 
        goto ERVC1; 
        Vaxfr: 
        WhfRP: 
        goto o_43t; 
        Ty8V7: 
        if (!empty($group_ids)) { 
            goto eVeOo; 
        } 
        goto kMl1e; 
        LBdQU: 
        lSH9I: 
        goto Sagrp; 
        CL7e1: 
        $return = true; 
        goto BNUpN; 
        MR_0r: 
        return false; 
        goto t1VOQ; 
        nJZ2k: 
        $this->trigger_events( 
            "remove_from_group" 
        ); 
        goto RCubN; 
        o_43t: 
        foreach ($group_ids as $group_id) { 
            goto WvExf; 
            WvExf: 
            $this->db->delete( 
                $this->tables[ 
                    "users_groups" 
                ], 
                [ 
                    $this->join[ 
                        "groups" 
                    ] => (float) $group_id, 
                    $this->join["users"] => (float) $user_id, 
                ] 
            ); 
            goto SyfQg; 
            n4r8J: 
            GGsJJ: 
            goto DGagB; 
            YiMKN: 
            QZER3: 
            goto n4r8J; 
            Snw0K: 
            unset($this->_cache_user_in_group[$user_id][$group_id]); 
            goto YiMKN; 
            SyfQg: 
            if ( 
                !( 
                    isset($this->_cache_user_in_group[$user_id]) && 
                    isset($this->_cache_user_in_group[$user_id][$group_id]) 
                ) 
            ) { 
                goto QZER3; 
            } 
            goto Snw0K; 
            DGagB: 
        } 
        goto RzCjf; 
        KOpw3: 
    } 
    public function groups() 
    { 
        goto WcJbc; 
        lsp_q: 
        $this->db->limit($this->_ion_limit); 
        goto QSFF3; 
        sjX1l: 
        if (isset($this->_ion_limit) && isset($this->_ion_offset)) { 
            goto Or8f1; 
        } 
        goto BL9vs; 
        o_VJ7: 
        Or8f1: 
        goto ZM_K0; 
        ZM_K0: 
        $this->db->limit($this->_ion_limit, $this->_ion_offset); 
        goto fWGfR; 
        iiCM6: 
        if (!(isset($this->_ion_where) && !empty($this->_ion_where))) { 
            goto KU4cZ; 
        } 
        goto Pj3je; 
        BL9vs: 
        if (!isset($this->_ion_limit)) { 
            goto m3aPO; 
        } 
        goto lsp_q; 
        fWGfR: 
        $this->_ion_limit = null; 
        goto HPjHY; 
        Qi3JL: 
        Kvwc7: 
        goto ByLli; 
        KKrLH: 
        $this->response = $this->db->get( 
            $this->tables["groups"] 
        ); 
        goto cGKXu; 
        SLecO: 
        zdgen: 
        goto KKrLH; 
        WcJbc: 
        $this->trigger_events("groups"); 
        goto iiCM6; 
        I76xG: 
        m3aPO: 
        goto OZTBS; 
        fN8uW: 
        $this->_ion_where = []; 
        goto x6uvc; 
        OZTBS: 
        goto Kvwc7; 
        goto o_VJ7; 
        S8U07: 
        $this->db->order_by($this->_ion_order_by, $this->_ion_order); 
        goto SLecO; 
        cGKXu: 
        return $this; 
        goto Oj1MP; 
        Pj3je: 
        foreach ($this->_ion_where as $where) { 
            $this->db->where($where); 
            rRIgJ: 
        } 
        goto gTx7U; 
        HPjHY: 
        $this->_ion_offset = null; 
        goto Qi3JL; 
        ByLli: 
        if (!(isset($this->_ion_order_by) && isset($this->_ion_order))) { 
            goto zdgen; 
        } 
        goto S8U07; 
        x6uvc: 
        KU4cZ: 
        goto sjX1l; 
        QSFF3: 
        $this->_ion_limit = null; 
        goto I76xG; 
        gTx7U: 
        uoIyn: 
        goto fN8uW; 
        Oj1MP: 
    } 
    public function group($id = null) 
    { 
        goto dmBa6; 
        dmBa6: 
        $this->trigger_events("group"); 
        goto aoexM; 
        oJXG7: 
        WOaMR: 
        goto t845Q; 
        aoexM: 
        if (!isset($id)) { 
            goto WOaMR; 
        } 
        goto kLleZ; 
        D5dpP: 
        return $this->groups(); 
        goto sfzdj; 
        t845Q: 
        $this->limit(1); 
        goto UrL6I; 
        UrL6I: 
        $this->order_by("id", "desc"); 
        goto D5dpP; 
        kLleZ: 
        $this->where( 
            $this->tables["groups"] . ".id", 
            $id 
        ); 
        goto oJXG7; 
        sfzdj: 
    } 
    public function update($id, array $data) 
    { 
        goto u8x3k; 
        fcOcq: 
        if (!($data["password"] === false)) { 
            goto kkLOu; 
        } 
        goto ty7qG; 
        l25kL: 
        $this->trigger_events([ 
            "post_update_user", 
            "post_update_user_unsuccessful", 
        ]); 
        goto nHUWP; 
        lu4ow: 
        $this->trigger_events("extra_where"); 
        goto pogkY; 
        opwjQ: 
        fWrCn: 
        goto lu4ow; 
        p92PT: 
        if (!empty($data["password"])) { 
            goto lwPgV; 
        } 
        goto bQKPL; 
        MhwUg: 
        $this->db->trans_begin(); 
        goto fvWvb; 
        jNPI5: 
        lwPgV: 
        goto nQdZ4; 
        Rfl7M: 
        IURtw: 
        goto opwjQ; 
        y_0Ok: 
        if (!($this->db->trans_status() === false)) { 
            goto VO5_a; 
        } 
        goto qf1uX; 
        iwXWN: 
        return false; 
        goto QkQ1f; 
        JvBAe: 
        kkLOu: 
        goto RO8WE; 
        FsLiq: 
        if ( 
            !( 
                array_key_exists($this->identity_column, $data) || 
                array_key_exists("password", $data) || 
                array_key_exists("email", $data) 
            ) 
        ) { 
            goto fWrCn; 
        } 
        goto BOQgp; 
        wN963: 
        $this->db->trans_commit(); 
        goto e84d_; 
        v5E_3: 
        $this->set_error( 
            "update_unsuccessful" 
        ); 
        goto iwXWN; 
        qf1uX: 
        $this->db->trans_rollback(); 
        goto qrSAe; 
        Hbvp3: 
        $user = $this->user($id)->row(); 
        goto MhwUg; 
        QkQ1f: 
        m1ioW: 
        goto emyq8; 
        fvWvb: 
        if ( 
            !( 
                array_key_exists($this->identity_column, $data) && 
                $this->identity_check($data[$this->identity_column]) && 
                $user->{$this->identity_column} !== 
                    $data[$this->identity_column] 
            ) 
        ) { 
            goto m1ioW; 
        } 
        goto L5x7h; 
        nQdZ4: 
        $data["password"] = $this->hash_password( 
            $data["password"], 
            $user->{$this->identity_column} 
        ); 
        goto fcOcq; 
        emyq8: 
        $data = $this->_filter_data( 
            $this->tables["users"], 
            $data 
        ); 
        goto FsLiq; 
        u8x3k: 
        $this->trigger_events( 
            "pre_update_user" 
        ); 
        goto Hbvp3; 
        BOQgp: 
        if (!array_key_exists("password", $data)) { 
            goto IURtw; 
        } 
        goto p92PT; 
        iVrM2: 
        VO5_a: 
        goto wN963; 
        R4CAp: 
        $this->trigger_events([ 
            "post_update_user", 
            "post_update_user_unsuccessful", 
        ]); 
        goto v5E_3; 
        MrHhS: 
        $this->set_message( 
            "update_successful" 
        ); 
        goto kp0Wc; 
        bQKPL: 
        unset($data["password"]); 
        goto EmAUl; 
        kp0Wc: 
        return true; 
        goto C_zbK; 
        HQjMa: 
        $this->set_error( 
            "update_unsuccessful" 
        ); 
        goto g86G2; 
        bkY4f: 
        $this->set_error( 
            "account_creation_duplicate_identity" 
        ); 
        goto R4CAp; 
        pogkY: 
        $this->db->update($this->tables["users"], $data, [ 
            "id" => $user->id, 
        ]); 
        goto y_0Ok; 
        nHUWP: 
        $this->set_error( 
            "update_unsuccessful" 
        ); 
        goto kYQjU; 
        qrSAe: 
        $this->trigger_events([ 
            "post_update_user", 
            "post_update_user_unsuccessful", 
        ]); 
        goto HQjMa; 
        kYQjU: 
        return false; 
        goto JvBAe; 
        ty7qG: 
        $this->db->trans_rollback(); 
        goto l25kL; 
        e84d_: 
        $this->trigger_events([ 
            "post_update_user", 
            "post_update_user_successful", 
        ]); 
        goto MrHhS; 
        L5x7h: 
        $this->db->trans_rollback(); 
        goto bkY4f; 
        RO8WE: 
        AX6sn: 
        goto Rfl7M; 
        g86G2: 
        return false; 
        goto iVrM2; 
        EmAUl: 
        goto AX6sn; 
        goto jNPI5; 
        C_zbK: 
    } 
    public function delete_user($id) 
    { 
        goto NQGfJ; 
        gNt3k: 
        gLuRf: 
        goto Tc2OT; 
        Tc2OT: 
        $this->db->trans_commit(); 
        goto OYyaw; 
        ErJnY: 
        $this->set_error( 
            "delete_unsuccessful" 
        ); 
        goto dYoMY; 
        DFumR: 
        return true; 
        goto RuiYY; 
        cv6yZ: 
        $this->trigger_events([ 
            "post_delete_user", 
            "post_delete_user_unsuccessful", 
        ]); 
        goto ErJnY; 
        xNcO4: 
        $this->remove_from_group(null, $id); 
        goto AHGT6; 
        Tt36I: 
        $this->set_message( 
            "delete_successful" 
        ); 
        goto DFumR; 
        Ie2dp: 
        $this->db->trans_rollback(); 
        goto cv6yZ; 
        NQGfJ: 
        $this->trigger_events( 
            "pre_delete_user" 
        ); 
        goto a04Ls; 
        OYyaw: 
        $this->trigger_events([ 
            "post_delete_user", 
            "post_delete_user_successful", 
        ]); 
        goto Tt36I; 
        ZcpOG: 
        if (!($this->db->trans_status() === false)) { 
            goto gLuRf; 
        } 
        goto Ie2dp; 
        a04Ls: 
        $this->db->trans_begin(); 
        goto xNcO4; 
        dYoMY: 
        return false; 
        goto gNt3k; 
        AHGT6: 
        $this->db->delete($this->tables["users"], [ 
            "id" => $id, 
        ]); 
        goto ZcpOG; 
        RuiYY: 
    } 
    public function update_last_login($id) 
    { 
        goto ERtPd; 
        TVt_u: 
        return $this->db->affected_rows() == 1; 
        goto hi9my; 
        LCuGc: 
        $this->db->update( 
            $this->tables["users"], 
            ["last_login" => time()], 
            ["id" => $id] 
        ); 
        goto TVt_u; 
        ERtPd: 
        $this->trigger_events( 
            "update_last_login" 
        ); 
        goto Q3dtO; 
        Q3dtO: 
        $this->load->helper("date"); 
        goto k_XQT; 
        k_XQT: 
        $this->trigger_events("extra_where"); 
        goto LCuGc; 
        hi9my: 
    } 
    public function set_lang($lang = "en") 
    { 
        goto KEfrj; 
        TvmBe: 
        $expire = $this->config->item( 
            "user_expire", 
            "ion_auth" 
        ); 
        goto Wzndx; 
        WB1a_: 
        $expire = self::MAX_COOKIE_LIFETIME; 
        goto rINs2; 
        VtR8a: 
        return true; 
        goto GtYgJ; 
        cKjHj: 
        viDbY: 
        goto WB1a_; 
        Wzndx: 
        goto lwwbB; 
        goto cKjHj; 
        A98LS: 
        if ( 
            $this->config->item( 
                "user_expire", 
                "ion_auth" 
            ) === 0 
        ) { 
            goto viDbY; 
        } 
        goto TvmBe; 
        JtiwX: 
        set_cookie([ 
            "name" => "lang_code", 
            "value" => $lang, 
            "expire" => $expire, 
        ]); 
        goto VtR8a; 
        KEfrj: 
        $this->trigger_events("set_lang"); 
        goto A98LS; 
        rINs2: 
        lwwbB: 
        goto JtiwX; 
        GtYgJ: 
    } 
    public function set_session($user) 
    { 
        goto fCSKw; 
        a6M63: 
        return true; 
        goto zQMl8; 
        Th8Hi: 
        $this->trigger_events( 
            "post_set_session" 
        ); 
        goto a6M63; 
        fCSKw: 
        $this->trigger_events( 
            "pre_set_session" 
        ); 
        goto pvVCR; 
        f5AeU: 
        $this->session->set_userdata($session_data); 
        goto Th8Hi; 
        pvVCR: 
        $session_data = [ 
            "identity" => 
                $user->{$this->identity_column}, 
            $this->identity_column => $user->{$this->identity_column}, 
            "email" => $user->email, 
            "user_id" => $user->id, 
            "old_last_login" => 
                $user->last_login, 
            "last_check" => time(), 
        ]; 
        goto f5AeU; 
        zQMl8: 
    } 
    public function remember_user($identity) 
    { 
        goto eEqmg; 
        MGhcY: 
        if ($identity) { 
            goto i8zqk; 
        } 
        goto UU2o9; 
        RuLYk: 
        $this->trigger_events([ 
            "post_remember_user", 
            "remember_user_unsuccessful", 
        ]); 
        goto g77iO; 
        G0C8J: 
        JWNSF: 
        goto BcusD; 
        DX1sH: 
        set_cookie([ 
            "name" => $this->config->item( 
                "remember_cookie_name", 
                "ion_auth" 
            ), 
            "value" => $token->user_code, 
            "expire" => $expire, 
        ]); 
        goto Jdyg4; 
        ucYz3: 
        Vun7M: 
        goto DX1sH; 
        eEqmg: 
        $this->trigger_events( 
            "pre_remember_user" 
        ); 
        goto MGhcY; 
        fnvc4: 
        if (!($this->db->affected_rows() > -1)) { 
            goto JWNSF; 
        } 
        goto xZYEJ; 
        UU2o9: 
        return false; 
        goto nH5Vb; 
        ymzPj: 
        $expire = $this->config->item( 
            "user_expire", 
            "ion_auth" 
        ); 
        goto gx83f; 
        g77iO: 
        return false; 
        goto f9akc; 
        nH5Vb: 
        i8zqk: 
        goto VdY7N; 
        BcusD: 
        S1BeJ: 
        goto RuLYk; 
        VdY7N: 
        $token = $this->_generate_selector_validator_couple(); 
        goto pyU5Q; 
        JAZHz: 
        XfPYb: 
        goto M2dSf; 
        M2dSf: 
        $expire = self::MAX_COOKIE_LIFETIME; 
        goto ucYz3; 
        gx83f: 
        goto Vun7M; 
        goto JAZHz; 
        xZYEJ: 
        if ( 
            $this->config->item( 
                "user_expire", 
                "ion_auth" 
            ) === 0 
        ) { 
            goto XfPYb; 
        } 
        goto ymzPj; 
        pyU5Q: 
        if (!$token->validator_hashed) { 
            goto S1BeJ; 
        } 
        goto mEYNI; 
        mEYNI: 
        $this->db->update( 
            $this->tables["users"], 
            [ 
                "remember_selector" => 
                    $token->selector, 
                "remember_code" => 
                    $token->validator_hashed, 
            ], 
            [$this->identity_column => $identity] 
        ); 
        goto fnvc4; 
        Jdyg4: 
        $this->trigger_events([ 
            "post_remember_user", 
            "remember_user_successful", 
        ]); 
        goto HFXMo; 
        HFXMo: 
        return true; 
        goto G0C8J; 
        f9akc: 
    } 
    public function login_remembered_user() 
    { 
        goto hWI3X; 
        j0aZF: 
        l9YcC: 
        goto kAmBt; 
        FzLTM: 
        g6q9r: 
        goto YFqLX; 
        f95FJ: 
        $this->trigger_events([ 
            "post_login_remembered_user", 
            "post_login_remembered_user_unsuccessful", 
        ]); 
        goto boQFJ; 
        oNE8b: 
        return false; 
        goto Tg682; 
        vRm0A: 
        $this->trigger_events("extra_where"); 
        goto Kt4w_; 
        boQFJ: 
        return false; 
        goto nlPc_; 
        FMEVG: 
        $this->clear_forgotten_password_code($identity); 
        goto X4jXc; 
        By3Kt: 
        $this->update_last_login($user->id); 
        goto tnae9; 
        tnae9: 
        $this->set_session($user); 
        goto FMEVG; 
        X4jXc: 
        if ( 
            !$this->config->item( 
                "user_extend_on_login", 
                "ion_auth" 
            ) 
        ) { 
            goto g6q9r; 
        } 
        goto o3eKn; 
        o3eKn: 
        $this->remember_user($identity); 
        goto FzLTM; 
        Tg682: 
        oWNm3: 
        goto vRm0A; 
        kAmBt: 
        delete_cookie( 
            $this->config->item( 
                "remember_cookie_name", 
                "ion_auth" 
            ) 
        ); 
        goto f95FJ; 
        YFqLX: 
        $this->session->sess_regenerate(false); 
        goto fEy4X; 
        BL1MQ: 
        $user = $query->row(); 
        goto xmdut; 
        h3sq1: 
        $token = $this->_retrieve_selector_validator_couple($remember_cookie); 
        goto lYBM3; 
        vyZpO: 
        return true; 
        goto rjfWT; 
        xmdut: 
        $identity = $user->{$this->identity_column}; 
        goto waNEk; 
        m7kvo: 
        $this->trigger_events([ 
            "post_login_remembered_user", 
            "post_login_remembered_user_unsuccessful", 
        ]); 
        goto oNE8b; 
        rjfWT: 
        idMH6: 
        goto j0aZF; 
        rG26K: 
        $remember_cookie = get_cookie( 
            $this->config->item( 
                "remember_cookie_name", 
                "ion_auth" 
            ) 
        ); 
        goto h3sq1; 
        fEy4X: 
        $this->trigger_events([ 
            "post_login_remembered_user", 
            "post_login_remembered_user_successful", 
        ]); 
        goto vyZpO; 
        lYBM3: 
        if (!($token === false)) { 
            goto oWNm3; 
        } 
        goto m7kvo; 
        waNEk: 
        if ( 
            !$this->verify_password( 
                $token->validator, 
                $user->remember_code, 
                $identity 
            ) 
        ) { 
            goto idMH6; 
        } 
        goto By3Kt; 
        qF581: 
        if (!($query->num_rows() === 1)) { 
            goto l9YcC; 
        } 
        goto BL1MQ; 
        hWI3X: 
        $this->trigger_events( 
            "pre_login_remembered_user" 
        ); 
        goto rG26K; 
        Kt4w_: 
        $query = $this->db 
            ->select( 
                $this->identity_column . 
                    ", id, email, remember_code, last_login" 
            ) 
            ->where( 
                "remember_selector", 
                $token->selector 
            ) 
            ->where("active", 1) 
            ->limit(1) 
            ->get($this->tables["users"]); 
        goto qF581; 
        nlPc_: 
    } 
    public function create_group( 
        $group_name = false, 
        $group_description = "", 
        $additional_data = [] 
    ) { 
        goto bdMNc; 
        rn3E2: 
        $this->set_error( 
            "group_already_exists" 
        ); 
        goto y6ftk; 
        I7TFM: 
        $group_id = $this->db->insert_id( 
            $this->tables["groups"] . 
                "_id_seq" 
        ); 
        goto NWA6g; 
        u_mj0: 
        $this->set_error( 
            "group_name_required" 
        ); 
        goto Kd2Q1; 
        rp2h_: 
        g8Iq8: 
        goto vU0NJ; 
        Kd2Q1: 
        return false; 
        goto RDoUk; 
        RDoUk: 
        HfG_s: 
        goto QbRHd; 
        zWnbg: 
        $this->trigger_events( 
            "extra_group_set" 
        ); 
        goto cZLJV; 
        vU0NJ: 
        $data = [ 
            "name" => $group_name, 
            "description" => $group_description, 
        ]; 
        goto VlE3k; 
        QbRHd: 
        $existing_group = $this->db 
            ->get_where($this->tables["groups"], [ 
                "name" => $group_name, 
            ]) 
            ->num_rows(); 
        goto j6YL9; 
        y6ftk: 
        return false; 
        goto rp2h_; 
        VlE3k: 
        if (empty($additional_data)) { 
            goto YvD4D; 
        } 
        goto auZfs; 
        NWA6g: 
        $this->set_message( 
            "group_creation_successful" 
        ); 
        goto D9j0U; 
        cZLJV: 
        $this->db->insert($this->tables["groups"], $data); 
        goto I7TFM; 
        auZfs: 
        $data = array_merge( 
            $this->_filter_data( 
                $this->tables["groups"], 
                $additional_data 
            ), 
            $data 
        ); 
        goto epZID; 
        j6YL9: 
        if (!($existing_group !== 0)) { 
            goto g8Iq8; 
        } 
        goto rn3E2; 
        epZID: 
        YvD4D: 
        goto zWnbg; 
        D9j0U: 
        return $group_id; 
        goto V2MyJ; 
        bdMNc: 
        if ($group_name) { 
            goto HfG_s; 
        } 
        goto u_mj0; 
        V2MyJ: 
    } 
    public function update_group( 
        $group_id = false, 
        $group_name = false, 
        $additional_data = [] 
    ) { 
        goto AL3LN; 
        tXMNU: 
        $data = array_merge( 
            $this->_filter_data( 
                $this->tables["groups"], 
                $additional_data 
            ), 
            $data 
        ); 
        goto SoLYP; 
        SoLYP: 
        e9CVL: 
        goto k13rq; 
        wwakJ: 
        YAOjC: 
        goto Ng_KO; 
        sXFWj: 
        if (empty($group_name)) { 
            goto YAOjC; 
        } 
        goto Jkze0; 
        Ng_KO: 
        $group = $this->db 
            ->get_where($this->tables["groups"], [ 
                "id" => $group_id, 
            ]) 
            ->row(); 
        goto nHcZ1; 
        eRg1W: 
        if (!(isset($existing_group->id) && $existing_group->id != $group_id)) { 
            goto rDt_P; 
        } 
        goto LRf0H; 
        WKlG8: 
        $data["name"] = $group_name; 
        goto wwakJ; 
        k13rq: 
        $this->db->update($this->tables["groups"], $data, [ 
            "id" => $group_id, 
        ]); 
        goto jr7yN; 
        lHtZL: 
        return false; 
        goto eVuiA; 
        Jkze0: 
        $existing_group = $this->db 
            ->get_where($this->tables["groups"], [ 
                "name" => $group_name, 
            ]) 
            ->row(); 
        goto eRg1W; 
        AL3LN: 
        if (!empty($group_id)) { 
            goto T4iGt; 
        } 
        goto lHtZL; 
        r2WBa: 
        if (empty($additional_data)) { 
            goto e9CVL; 
        } 
        goto tXMNU; 
        LRf0H: 
        $this->set_error( 
            "group_already_exists" 
        ); 
        goto YvTgB; 
        nHcZ1: 
        if ( 
            !( 
                $this->config->item( 
                    "admin_group", 
                    "ion_auth" 
                ) === $group->name && $group_name !== $group->name 
            ) 
        ) { 
            goto Yt4rB; 
        } 
        goto anrbk; 
        anrbk: 
        $this->set_error( 
            "group_name_admin_not_alter" 
        ); 
        goto x4AuM; 
        Ivi7i: 
        rDt_P: 
        goto WKlG8; 
        YvTgB: 
        return false; 
        goto Ivi7i; 
        jr7yN: 
        $this->set_message( 
            "group_update_successful" 
        ); 
        goto usGY3; 
        eVuiA: 
        T4iGt: 
        goto iCjJV; 
        jYGyx: 
        Yt4rB: 
        goto r2WBa; 
        iCjJV: 
        $data = []; 
        goto sXFWj; 
        x4AuM: 
        return false; 
        goto jYGyx; 
        usGY3: 
        return true; 
        goto mjUTM; 
        mjUTM: 
    } 
    public function delete_group($group_id = false) 
    { 
        goto KRFaE; 
        rcO9m: 
        $this->db->trans_commit(); 
        goto GuzJI; 
        nouEk: 
        $this->set_message( 
            "group_delete_successful" 
        ); 
        goto KawT0; 
        nk6K0: 
        fVetW: 
        goto rcO9m; 
        jyqGT: 
        $this->set_error( 
            "group_delete_unsuccessful" 
        ); 
        goto mQCj3; 
        kI2Cw: 
        if (!($this->db->trans_status() === false)) { 
            goto fVetW; 
        } 
        goto ukV4f; 
        KNEed: 
        IPRhu: 
        goto ogxQ3; 
        qnZEH: 
        $this->db->trans_begin(); 
        goto ndqEm; 
        ogxQ3: 
        $this->trigger_events( 
            "pre_delete_group" 
        ); 
        goto qnZEH; 
        vDSSS: 
        $this->trigger_events([ 
            "post_delete_group", 
            "post_delete_group_notallowed", 
        ]); 
        goto FHD3G; 
        b3SAt: 
        $this->db->delete($this->tables["groups"], [ 
            "id" => $group_id, 
        ]); 
        goto kI2Cw; 
        FgHKP: 
        return false; 
        goto KNEed; 
        GuzJI: 
        $this->trigger_events([ 
            "post_delete_group", 
            "post_delete_group_successful", 
        ]); 
        goto nouEk; 
        ndqEm: 
        $this->db->delete( 
            $this->tables["users_groups"], 
            [$this->join["groups"] => $group_id] 
        ); 
        goto b3SAt; 
        ukV4f: 
        $this->db->trans_rollback(); 
        goto QGn1z; 
        SMiUK: 
        return false; 
        goto ND3wb; 
        ND3wb: 
        xOv9B: 
        goto h7PLo; 
        mQCj3: 
        return false; 
        goto nk6K0; 
        QGn1z: 
        $this->trigger_events([ 
            "post_delete_group", 
            "post_delete_group_unsuccessful", 
        ]); 
        goto jyqGT; 
        KawT0: 
        return true; 
        goto ATQ7S; 
        FHD3G: 
        $this->set_error( 
            "group_delete_notallowed" 
        ); 
        goto FgHKP; 
        KRFaE: 
        if (!(!$group_id || empty($group_id))) { 
            goto xOv9B; 
        } 
        goto SMiUK; 
        M_IQZ: 
        if ( 
            !( 
                $group->name == 
                $this->config->item( 
                    "admin_group", 
                    "ion_auth" 
                ) 
            ) 
        ) { 
            goto IPRhu; 
        } 
        goto vDSSS; 
        h7PLo: 
        $group = $this->group($group_id)->row(); 
        goto M_IQZ; 
        ATQ7S: 
    } 
    public function set_hook($event, $name, $class, $method, $arguments) 
    { 
        goto Xuh4D; 
        SAaEc: 
        $this->_ion_hooks->{$event}[$name]->method = $method; 
        goto OdC2_; 
        OdC2_: 
        $this->_ion_hooks->{$event}[$name]->arguments = $arguments; 
        goto b7qX8; 
        rYmae: 
        $this->_ion_hooks->{$event}[$name]->class = $class; 
        goto SAaEc; 
        Xuh4D: 
        $this->_ion_hooks->{$event}[$name] = new stdClass(); 
        goto rYmae; 
        b7qX8: 
    } 
    public function remove_hook($event, $name) 
    { 
        goto Rpmxt; 
        cW2cd: 
        unset($this->_ion_hooks->{$event}[$name]); 
        goto ei0Dm; 
        ei0Dm: 
        pFp9t: 
        goto ge8zq; 
        Rpmxt: 
        if (!isset($this->_ion_hooks->{$event}[$name])) { 
            goto pFp9t; 
        } 
        goto cW2cd; 
        ge8zq: 
    } 
    public function remove_hooks($event) 
    { 
        goto yHP1S; 
        t4lNn: 
        unset($this->_ion_hooks->{$event}); 
        goto EjEB4; 
        EjEB4: 
        kQck3: 
        goto x6oVn; 
        yHP1S: 
        if (!isset($this->_ion_hooks->{$event})) { 
            goto kQck3; 
        } 
        goto t4lNn; 
        x6oVn: 
    } 
    protected function _call_hook($event, $name) 
    { 
        goto Y5e21; 
        oKvRH: 
        WNeLA: 
        goto ufzU3; 
        ufzU3: 
        return false; 
        goto Pbxsb; 
        Gp3Ae: 
        $hook = $this->_ion_hooks->{$event}[$name]; 
        goto d3B_z; 
        Y5e21: 
        if ( 
            !( 
                isset($this->_ion_hooks->{$event}[$name]) && 
                method_exists( 
                    $this->_ion_hooks->{$event}[$name]->class, 
                    $this->_ion_hooks->{$event}[$name]->method 
                ) 
            ) 
        ) { 
            goto WNeLA; 
        } 
        goto Gp3Ae; 
        d3B_z: 
        return call_user_func_array( 
            [$hook->class, $hook->method], 
            $hook->arguments 
        ); 
        goto oKvRH; 
        Pbxsb: 
    } 
    public function trigger_events($events) 
    { 
        goto tnxGr; 
        Eo5Z3: 
        oEvnm: 
        goto yqNgd; 
        REQDN: 
        DHTZc: 
        goto oCTmD; 
        PPM5E: 
        WNU9x: 
        goto REQDN; 
        oCTmD: 
        goto CKBpo; 
        goto TUITn; 
        tfbpX: 
        foreach ($events as $event) { 
            $this->trigger_events($event); 
            HPbvF: 
        } 
        goto Eo5Z3; 
        hMU5J: 
        foreach ($this->_ion_hooks->{$events} as $name => $hook) { 
            $this->_call_hook($events, $name); 
            vzaeZ: 
        } 
        goto PPM5E; 
        tnxGr: 
        if (is_array($events) && !empty($events)) { 
            goto dr9bN; 
        } 
        goto Epcoc; 
        Epcoc: 
        if ( 
            !( 
                isset($this->_ion_hooks->{$events}) && 
                !empty($this->_ion_hooks->{$events}) 
            ) 
        ) { 
            goto DHTZc; 
        } 
        goto hMU5J; 
        TUITn: 
        dr9bN: 
        goto tfbpX; 
        yqNgd: 
        CKBpo: 
        goto Z05sG; 
        Z05sG: 
    } 
    public function set_message_delimiters($start_delimiter, $end_delimiter) 
    { 
        goto fZqkV; 
        LPZlu: 
        $this->message_end_delimiter = $end_delimiter; 
        goto KTHKK; 
        KTHKK: 
        return true; 
        goto h36I6; 
        fZqkV: 
        $this->message_start_delimiter = $start_delimiter; 
        goto LPZlu; 
        h36I6: 
    } 
    public function set_error_delimiters($start_delimiter, $end_delimiter) 
    { 
        goto X2ZoU; 
        x50gn: 
        return true; 
        goto ZhFW9; 
        X2ZoU: 
        $this->error_start_delimiter = $start_delimiter; 
        goto iv3ff; 
        iv3ff: 
        $this->error_end_delimiter = $end_delimiter; 
        goto x50gn; 
        ZhFW9: 
    } 
    public function set_message($message) 
    { 
        $this->messages[] = $message; 
        return $message; 
    } 
    public function messages() 
    { 
        goto As2JM; 
        L1H3A: 
        foreach ($this->messages as $message) { 
            goto sz7c1; 
            sz7c1: 
            $messageLang = $this->lang->line($message) 
                ? $this->lang->line($message) 
                : "##" . $message . "##"; 
            goto s1Abk; 
            s1Abk: 
            $_output .= 
                $this->message_start_delimiter . 
                $messageLang . 
                $this->message_end_delimiter; 
            goto E9UCK; 
            E9UCK: 
            K6BCP: 
            goto pbqww; 
            pbqww: 
        } 
        goto Upz87; 
        HkUqS: 
        return $_output; 
        goto rteAS; 
        As2JM: 
        $_output = ""; 
        goto L1H3A; 
        Upz87: 
        dTRbR: 
        goto HkUqS; 
        rteAS: 
    } 
    public function messages_array($langify = true) 
    { 
        goto D6pW7; 
        YPJ0A: 
        goto sybWl; 
        goto w0h55; 
        TjLyO: 
        MYna0: 
        goto L94zz; 
        D6pW7: 
        if ($langify) { 
            goto ddOUo; 
        } 
        goto v4yKQ; 
        U9UNa: 
        foreach ($this->messages as $message) { 
            goto Y1rC3; 
            Y1rC3: 
            $messageLang = $this->lang->line($message) 
                ? $this->lang->line($message) 
                : "##" . $message . "##"; 
            goto mO33g; 
            mO33g: 
            $_output[] = 
                $this->message_start_delimiter . 
                $messageLang . 
                $this->message_end_delimiter; 
            goto hsWHs; 
            hsWHs: 
            e9TUs: 
            goto MZ9Z0; 
            MZ9Z0: 
        } 
        goto TjLyO; 
        NjFri: 
        $_output = []; 
        goto U9UNa; 
        v4yKQ: 
        return $this->messages; 
        goto YPJ0A; 
        w0h55: 
        ddOUo: 
        goto NjFri; 
        L94zz: 
        return $_output; 
        goto W6iN0; 
        W6iN0: 
        sybWl: 
        goto AFl2M; 
        AFl2M: 
    } 
    public function clear_messages() 
    { 
        $this->messages = []; 
        return true; 
    } 
    public function set_error($error) 
    { 
        $this->errors[] = $error; 
        return $error; 
    } 
    public function errors() 
    { 
        goto SnqLz; 
        UTkKx: 
        return $_output; 
        goto ddoQE; 
        q2Jtt: 
        foreach ($this->errors as $error) { 
            goto Q8xDQ; 
            Q8xDQ: 
            $errorLang = $this->lang->line($error) 
                ? $this->lang->line($error) 
                : "##" . $error . "##"; 
            goto GO0nP; 
            GO0nP: 
            $_output .= 
                $this->error_start_delimiter . 
                $errorLang . 
                $this->error_end_delimiter; 
            goto Ux5NH; 
            Ux5NH: 
            oGzYz: 
            goto MVC1G; 
            MVC1G: 
        } 
        goto XejPh; 
        SnqLz: 
        $_output = ""; 
        goto q2Jtt; 
        XejPh: 
        Z8_jH: 
        goto UTkKx; 
        ddoQE: 
    } 
    public function errors_array($langify = true) 
    { 
        goto EMsXI; 
        cR12T: 
        $_output = []; 
        goto UKn8z; 
        IevpU: 
        CWgT1: 
        goto XyUHa; 
        UKn8z: 
        foreach ($this->errors as $error) { 
            goto uWkRa; 
            uWkRa: 
            $errorLang = $this->lang->line($error) 
                ? $this->lang->line($error) 
                : "##" . $error . "##"; 
            goto p5ywf; 
            MeV7T: 
            JEudu: 
            goto vueI0; 
            p5ywf: 
            $_output[] = 
                $this->error_start_delimiter . 
                $errorLang . 
                $this->error_end_delimiter; 
            goto MeV7T; 
            vueI0: 
        } 
        goto IevpU; 
        XyUHa: 
        return $_output; 
        goto I3YSR; 
        P0kUn: 
        return $this->errors; 
        goto mBjQd; 
        mBjQd: 
        goto TC8qM; 
        goto ReuUq; 
        ReuUq: 
        plgty: 
        goto cR12T; 
        I3YSR: 
        TC8qM: 
        goto ohpJH; 
        EMsXI: 
        if ($langify) { 
            goto plgty; 
        } 
        goto P0kUn; 
        ohpJH: 
    } 
    public function clear_errors() 
    { 
        $this->errors = []; 
        return true; 
    } 
    protected function _set_password_db($identity, $password) 
    { 
        goto kAAnY; 
        kAAnY: 
        $hash = $this->hash_password($password, $identity); 
        goto udYvy; 
        RjQ0r: 
        T2qc6: 
        goto pgZjN; 
        Mbg5K: 
        $this->db->update($this->tables["users"], $data, [ 
            $this->identity_column => $identity, 
        ]); 
        goto Au_ou; 
        pgZjN: 
        $data = [ 
            "password" => $hash, 
            "remember_code" => null, 
            "forgotten_password_code" => null, 
            "forgotten_password_time" => null, 
        ]; 
        goto ywVI5; 
        ywVI5: 
        $this->trigger_events("extra_where"); 
        goto Mbg5K; 
        Z8S0n: 
        return false; 
        goto RjQ0r; 
        Au_ou: 
        return $this->db->affected_rows() == 1; 
        goto pPpUy; 
        udYvy: 
        if (!($hash === false)) { 
            goto T2qc6; 
        } 
        goto Z8S0n; 
        pPpUy: 
    } 
    protected function _filter_data($table, $data) 
    { 
        goto nuYBY; 
        nuYBY: 
        $filtered_data = []; 
        goto XnrVM; 
        XnrVM: 
        $columns = $this->db->list_fields($table); 
        goto cJv9o; 
        daOTy: 
        return $filtered_data; 
        goto nJiaP; 
        cJv9o: 
        if (!is_array($data)) { 
            goto YfGuE; 
        } 
        goto qKOHu; 
        Wydbb: 
        w7tG1: 
        goto A4Jx3; 
        qKOHu: 
        foreach ($columns as $column) { 
            goto KyaJb; 
            KyaJb: 
            if (!array_key_exists($column, $data)) { 
                goto xrXnh; 
            } 
            goto L_6Jt; 
            L_6Jt: 
            $filtered_data[$column] = $data[$column]; 
            goto r5h5R; 
            O3B6j: 
            gITJU: 
            goto SXGI0; 
            r5h5R: 
            xrXnh: 
            goto O3B6j; 
            SXGI0: 
        } 
        goto Wydbb; 
        A4Jx3: 
        YfGuE: 
        goto daOTy; 
        nJiaP: 
    } 
    protected function _random_token($result_length = 32) 
    { 
        goto hfnb1; 
        ddAZL: 
        return bin2hex( 
            mcrypt_create_iv($result_length / 2, MCRYPT_DEV_URANDOM) 
        ); 
        goto YlCVA; 
        boFkq: 
        r3buZ: 
        goto YXw0p; 
        RtTMq: 
        if ( 
            !function_exists( 
                "mcrypt_create_iv" 
            ) 
        ) { 
            goto LGqMz; 
        } 
        goto ddAZL; 
        W91Vm: 
        $result_length = 32; 
        goto boFkq; 
        ajP9K: 
        if ( 
            !function_exists( 
                "openssl_random_pseudo_bytes" 
            ) 
        ) { 
            goto JNrS2; 
        } 
        goto rS6U6; 
        rS6U6: 
        return bin2hex(openssl_random_pseudo_bytes($result_length / 2)); 
        goto ntCqb; 
        hfnb1: 
        if (!(!isset($result_length) || intval($result_length) <= 8)) { 
            goto r3buZ; 
        } 
        goto W91Vm; 
        HoIvO: 
        return bin2hex(random_bytes($result_length / 2)); 
        goto qqRdi; 
        YXw0p: 
        if ( 
            !function_exists("random_bytes") 
        ) { 
            goto W2oBr; 
        } 
        goto HoIvO; 
        wXojB: 
        return false; 
        goto krhgN; 
        ntCqb: 
        JNrS2: 
        goto wXojB; 
        qqRdi: 
        W2oBr: 
        goto RtTMq; 
        YlCVA: 
        LGqMz: 
        goto ajP9K; 
        krhgN: 
    } 
    protected function _get_hash_parameters($identity = null) 
    { 
        goto kbF0S; 
        vDLf4: 
        switch ($this->hash_method) { 
            case "bcrypt": 
                $params = [ 
                    "cost" => $is_admin 
                        ? $this->config->item( 
                            "bcrypt_admin_cost", 
                            "ion_auth" 
                        ) 
                        : $this->config->item( 
                            "bcrypt_default_cost", 
                            "ion_auth" 
                        ), 
                ]; 
                goto uc25u; 
            case "argon2": 
                $params = $is_admin 
                    ? $this->config->item( 
                        "argon2_admin_params", 
                        "ion_auth" 
                    ) 
                    : $this->config->item( 
                        "argon2_default_params", 
                        "ion_auth" 
                    ); 
                goto uc25u; 
            default: 
        } 
        goto ufejx; 
        JSYYy: 
        wOYTl: 
        goto HeZ6a; 
        gOqyY: 
        $is_admin = true; 
        goto gkmRo; 
        f0x2o: 
        if ( 
            !( 
                $user_id && 
                $this->in_group( 
                    $this->config->item( 
                        "admin_group", 
                        "ion_auth" 
                    ), 
                    $user_id 
                ) 
            ) 
        ) { 
            goto EKbX9; 
        } 
        goto gOqyY; 
        m91Bs: 
        if (!$identity) { 
            goto wOYTl; 
        } 
        goto nSf5O; 
        kbF0S: 
        $is_admin = false; 
        goto m91Bs; 
        Biwuk: 
        uc25u: 
        goto DujPI; 
        nSf5O: 
        $user_id = $this->get_user_id_from_identity($identity); 
        goto f0x2o; 
        gkmRo: 
        EKbX9: 
        goto JSYYy; 
        HeZ6a: 
        $params = false; 
        goto vDLf4; 
        ufejx: 
        CZ363: 
        goto Biwuk; 
        DujPI: 
        return $params; 
        goto Tu2B5; 
        Tu2B5: 
    } 
    protected function _get_hash_algo() 
    { 
        goto Rfwll; 
        rkD9S: 
        return $algo; 
        goto AI5m2; 
        Rfwll: 
        $algo = false; 
        goto t4br2; 
        Fq2Hm: 
        ilWhc: 
        goto giY5J; 
        t4br2: 
        switch ($this->hash_method) { 
            case "bcrypt": 
                $algo = PASSWORD_BCRYPT; 
                goto LNlHQ; 
            case "argon2": 
                $algo = PASSWORD_ARGON2I; 
                goto LNlHQ; 
            default: 
        } 
        goto Fq2Hm; 
        giY5J: 
        LNlHQ: 
        goto rkD9S; 
        AI5m2: 
    } 
    protected function _generate_selector_validator_couple( 
        $selector_size = 40, 
        $validator_size = 128 
    ) { 
        goto ZVqDy; 
        ZVqDy: 
        $selector = $this->_random_token($selector_size); 
        goto oN9IR; 
        YtQvV: 
        $validator_hashed = $this->hash_password($validator); 
        goto Xd0GL; 
        nLW9P: 
        return (object) [ 
            "selector" => $selector, 
            "validator_hashed" => $validator_hashed, 
            "user_code" => $user_code, 
        ]; 
        goto UWdhY; 
        Xd0GL: 
        $user_code = "{$selector}.{$validator}"; 
        goto nLW9P; 
        oN9IR: 
        $validator = $this->_random_token($validator_size); 
        goto YtQvV; 
        UWdhY: 
    } 
    protected function _retrieve_selector_validator_couple($user_code) 
    { 
        goto Cg_iz; 
        Cg_iz: 
        if (!$user_code) { 
            goto C0aTJ; 
        } 
        goto mhXF7; 
        ymCaQ: 
        if (!(count($tokens) === 2)) { 
            goto Rs2Y0; 
        } 
        goto Vgu9y; 
        Vgu9y: 
        return (object) [ 
            "selector" => $tokens[0], 
            "validator" => $tokens[1], 
        ]; 
        goto IQG8B; 
        mhXF7: 
        $tokens = explode(".", $user_code); 
        goto ymCaQ; 
        hpebr: 
        C0aTJ: 
        goto pI0Rq; 
        IQG8B: 
        Rs2Y0: 
        goto hpebr; 
        pI0Rq: 
        return false; 
        goto g7d6i; 
        g7d6i: 
    } 
    protected function _password_verify_sha1_legacy( 
        $identity, 
        $password, 
        $hashed_password_db 
    ) { 
        goto Y_a8F; 
        IjYM5: 
        HWas_: 
        goto JVH6c; 
        VH_so: 
        if ($salt_length) { 
            goto XZ4NE; 
        } 
        goto bXLHw; 
        r8aw1: 
        goto HWas_; 
        goto UkaPq; 
        zNqJ3: 
        if ($result) { 
            goto y3WEo; 
        } 
        goto tjlIh; 
        bq1ve: 
        g2LyH: 
        goto Lx1WX; 
        Y_a8F: 
        $this->trigger_events( 
            "pre_sha1_password_migration" 
        ); 
        goto mpybt; 
        jTxLI: 
        rWzQn: 
        goto opfSX; 
        t7337: 
        $query = $this->db 
            ->select("salt") 
            ->where($this->identity_column, $identity) 
            ->limit(1) 
            ->get($this->tables["users"]); 
        goto dw_pZ; 
        Hh8LT: 
        goto r1jEo; 
        goto WHdHH; 
        Mf4vM: 
        return $result; 
        goto jTxLI; 
        mpybt: 
        if ( 
            $this->config->item( 
                "store_salt", 
                "ion_auth" 
            ) 
        ) { 
            goto pV_8w; 
        } 
        goto Nd076; 
        ydnRF: 
        $this->trigger_events([ 
            "post_sha1_password_migration", 
            "post_sha1_password_migration_successful", 
        ]); 
        goto MqVFV; 
        MqVFV: 
        r1jEo: 
        goto Mf4vM; 
        Lx1WX: 
        $result = $this->_set_password_db($identity, $password); 
        goto zNqJ3; 
        bXLHw: 
        $this->trigger_events([ 
            "post_sha1_password_migration", 
            "post_sha1_password_migration_unsuccessful", 
        ]); 
        goto Z7ZQ1; 
        dJJw0: 
        $this->trigger_events([ 
            "post_sha1_password_migration", 
            "post_sha1_password_migration_unsuccessful", 
        ]); 
        goto vFbmr; 
        LQkTd: 
        $hashed_password = sha1($password . $salt_db->salt); 
        goto IjYM5; 
        dw_pZ: 
        $salt_db = $query->row(); 
        goto ucz6Q; 
        vcFW2: 
        $salt = substr($hashed_password_db, 0, $salt_length); 
        goto OYbC7; 
        tjlIh: 
        $this->trigger_events([ 
            "post_sha1_password_migration", 
            "post_sha1_password_migration_unsuccessful", 
        ]); 
        goto Hh8LT; 
        Z7ZQ1: 
        return false; 
        goto Rqkxc; 
        vFbmr: 
        return false; 
        goto qwqXc; 
        JVH6c: 
        if ($hashed_password === $hashed_password_db) { 
            goto g2LyH; 
        } 
        goto dJJw0; 
        UkaPq: 
        pV_8w: 
        goto t7337; 
        Rqkxc: 
        XZ4NE: 
        goto vcFW2; 
        dVyub: 
        $this->trigger_events([ 
            "post_sha1_password_migration", 
            "post_sha1_password_migration_unsuccessful", 
        ]); 
        goto vfujE; 
        nbM2w: 
        OufCS: 
        goto LQkTd; 
        Nd076: 
        $salt_length = $this->config->item( 
            "salt_length", 
            "ion_auth" 
        ); 
        goto VH_so; 
        OYbC7: 
        $hashed_password = 
            $salt . substr(sha1($salt . $password), 0, -$salt_length); 
        goto r8aw1; 
        ucz6Q: 
        if (!($query->num_rows() !== 1)) { 
            goto OufCS; 
        } 
        goto dVyub; 
        vfujE: 
        return false; 
        goto nbM2w; 
        WHdHH: 
        y3WEo: 
        goto ydnRF; 
        qwqXc: 
        goto rWzQn; 
        goto bq1ve; 
        opfSX: 
    } 
} 
 ?>

Did this file decode correctly?

Original Code

<?php
/*   ________________________________________
    |                 GarudaCBT              |
    |    https://github.com/garudacbt/cbt    |
    |________________________________________|
*/
defined("\102\101\123\105\120\x41\x54\x48") or
    exit(
        "\x4e\x6f\40\144\151\162\x65\143\164\40\163\x63\162\x69\160\x74\x20\141\143\143\145\x73\163\x20\x61\154\154\x6f\x77\x65\x64"
    );
class Ion_auth_model extends CI_Model
{
    const MAX_COOKIE_LIFETIME = 63072000;
    const MAX_PASSWORD_SIZE_BYTES = 4096;
    public $tables = [];
    public $activation_code;
    public $new_password;
    public $identity;
    public $_ion_where = [];
    public $_ion_select = [];
    public $_ion_like = [];
    public $_ion_limit = null;
    public $_ion_offset = null;
    public $_ion_order_by = null;
    public $_ion_order = null;
    protected $_ion_hooks;
    protected $response = null;
    protected $messages;
    protected $errors;
    protected $error_start_delimiter;
    protected $error_end_delimiter;
    public $_cache_user_in_group = [];
    protected $_cache_groups = [];
    protected $db;
    private $identity_column;
    private $join;
    private $hash_method;
    private $message_start_delimiter;
    private $message_end_delimiter;
    public function __construct()
    {
        goto YMT81;
        T0oJX:
        KHmMf:
        goto TIQeh;
        f1Z0y:
        $this->error_start_delimiter = $error_prefix->getValue(
            $this->form_validation
        );
        goto nsQbv;
        H8ckW:
        sMp9x:
        goto nSN3_;
        WMbPc:
        $this->identity_column = $this->config->item(
            "\151\144\145\x6e\164\x69\x74\x79",
            "\x69\157\156\x5f\x61\x75\x74\x68"
        );
        goto hU8E3;
        LZ_Fg:
        goto H9wzw;
        goto T0oJX;
        Vpkff:
        $this->message_end_delimiter = $this->error_end_delimiter;
        goto LNct1;
        Nw2bv:
        $this->messages = [];
        goto HudFR;
        MIRbC:
        $error_prefix = $form_validation_class->getProperty(
            "\137\145\162\x72\x6f\x72\x5f\160\162\x65\x66\151\x78"
        );
        goto GOURm;
        t4qGA:
        $this->tables = $this->config->item(
            "\x74\x61\x62\x6c\x65\x73",
            "\151\x6f\156\x5f\141\x75\164\x68"
        );
        goto WMbPc;
        YMT81:
        $this->config->load("\151\157\x6e\137\141\165\x74\x68", true);
        goto w49O8;
        gkqp3:
        $this->error_end_delimiter = $error_suffix->getValue(
            $this->form_validation
        );
        goto Vpkff;
        N7XX6:
        $this->_ion_hooks = new stdClass();
        goto NSDAs;
        w49O8:
        $this->load->helper("\x63\157\x6f\153\151\145");
        goto QPjGB;
        nSN3_:
        $this->load->library(
            "\x66\x6f\x72\x6d\x5f\x76\141\x6c\x69\144\141\164\x69\x6f\156"
        );
        goto ELS2v;
        HudFR:
        $this->errors = [];
        goto Q6zYS;
        VdH_3:
        $this->error_start_delimiter = $this->config->item(
            "\145\x72\162\x6f\x72\137\x73\164\x61\162\x74\137\x64\x65\154\x69\x6d\151\164\145\162",
            "\151\157\x6e\137\x61\165\164\150"
        );
        goto J1WbU;
        QPjGB:
        $this->load->helper("\144\141\164\x65");
        goto QNhzs;
        Tcslx:
        $error_suffix->setAccessible(true);
        goto gkqp3;
        nsQbv:
        $this->message_start_delimiter = $this->error_start_delimiter;
        goto rAeFD;
        GOURm:
        $error_prefix->setAccessible(true);
        goto f1Z0y;
        BxyOR:
        H9wzw:
        goto t4qGA;
        LNct1:
        gii_o:
        goto N7XX6;
        GYT0h:
        if (
            $delimiters_source ===
            "\x66\157\x72\155\137\166\141\x6c\x69\x64\x61\x74\151\157\x6e"
        ) {
            goto sMp9x;
        }
        goto wp910;
        hU8E3:
        $this->join = $this->config->item(
            "\x6a\157\151\x6e",
            "\151\157\x6e\137\141\165\x74\x68"
        );
        goto Awi0P;
        NSDAs:
        $this->trigger_events(
            "\155\157\144\145\154\137\143\157\x6e\x73\164\x72\x75\x63\x74\x6f\x72"
        );
        goto A2Sfb;
        S8fe7:
        goto gii_o;
        goto H8ckW;
        Q6zYS:
        $delimiters_source = $this->config->item(
            "\x64\145\154\151\x6d\151\164\145\x72\x73\x5f\163\x6f\x75\x72\x63\x65",
            "\x69\x6f\156\x5f\x61\x75\x74\150"
        );
        goto GYT0h;
        oNuRR:
        $this->message_end_delimiter = $this->config->item(
            "\x6d\145\163\163\x61\x67\x65\137\x65\156\x64\x5f\144\145\x6c\151\x6d\x69\164\x65\x72",
            "\x69\x6f\x6e\x5f\x61\165\x74\x68"
        );
        goto VdH_3;
        QNhzs:
        $this->lang->load("\151\157\x6e\x5f\141\165\164\150");
        goto s1ozu;
        Eczx2:
        $this->db = $CI->db;
        goto BxyOR;
        Awi0P:
        $this->hash_method = $this->config->item(
            "\150\x61\163\x68\x5f\155\145\164\x68\157\x64",
            "\151\x6f\x6e\x5f\x61\165\164\x68"
        );
        goto Nw2bv;
        J1WbU:
        $this->error_end_delimiter = $this->config->item(
            "\145\x72\x72\x6f\x72\x5f\x65\156\x64\137\144\x65\154\151\155\x69\164\x65\162",
            "\x69\x6f\156\x5f\141\165\x74\x68"
        );
        goto S8fe7;
        s1ozu:
        $group_name = $this->config->item(
            "\144\x61\x74\141\142\141\163\145\137\147\x72\157\x75\160\x5f\x6e\x61\155\x65",
            "\151\x6f\x6e\x5f\x61\165\x74\x68"
        );
        goto S4_SW;
        TIQeh:
        $CI = &get_instance();
        goto Eczx2;
        S4_SW:
        if (empty($group_name)) {
            goto KHmMf;
        }
        goto u_onv;
        u_onv:
        $this->db = $this->load->database($group_name, true, true);
        goto LZ_Fg;
        ELS2v:
        $form_validation_class = new ReflectionClass(
            "\x43\111\137\x46\157\x72\x6d\137\166\x61\154\151\x64\x61\164\151\157\x6e"
        );
        goto MIRbC;
        rAeFD:
        $error_suffix = $form_validation_class->getProperty(
            "\137\145\162\x72\x6f\162\x5f\x73\165\x66\x66\151\x78"
        );
        goto Tcslx;
        wp910:
        $this->message_start_delimiter = $this->config->item(
            "\155\145\163\x73\141\147\145\137\x73\164\x61\x72\x74\x5f\144\x65\154\151\x6d\151\x74\145\162",
            "\x69\157\156\x5f\141\x75\x74\150"
        );
        goto oNuRR;
        A2Sfb:
    }
    public function db()
    {
        return $this->db;
    }
    public function hash_password($password, $identity = null)
    {
        goto E3vrU;
        YJydC:
        WVcRN:
        goto TDCit;
        pgUkI:
        if (!($algo !== false && $params !== false)) {
            goto WVcRN;
        }
        goto ZnndS;
        e6pUX:
        PbFQV:
        goto Rfrm1;
        ZnndS:
        return password_hash($password, $algo, $params);
        goto YJydC;
        uLhJg:
        $params = $this->_get_hash_parameters($identity);
        goto pgUkI;
        NAl3v:
        return false;
        goto e6pUX;
        E3vrU:
        if (
            !(
                empty($password) ||
                strpos($password, "\x0") !== false ||
                strlen($password) > self::MAX_PASSWORD_SIZE_BYTES
            )
        ) {
            goto PbFQV;
        }
        goto NAl3v;
        TDCit:
        return false;
        goto b5f2y;
        Rfrm1:
        $algo = $this->_get_hash_algo();
        goto uLhJg;
        b5f2y:
    }
    public function verify_password(
        $password,
        $hash_password_db,
        $identity = null
    ) {
        goto b5RGg;
        xKhg7:
        return false;
        goto brpKU;
        CG20q:
        return password_verify($password, $hash_password_db);
        goto XktTQ;
        RyIp1:
        return $this->_password_verify_sha1_legacy(
            $identity,
            $password,
            $hash_password_db
        );
        goto GxNbx;
        b5RGg:
        if (
            !(
                empty($password) ||
                empty($hash_password_db) ||
                strpos($password, "\0") !== false ||
                strlen($password) > self::MAX_PASSWORD_SIZE_BYTES
            )
        ) {
            goto uJlpV;
        }
        goto xKhg7;
        brpKU:
        uJlpV:
        goto UG0MZ;
        UG0MZ:
        if (strpos($hash_password_db, "\44") === 0) {
            goto C4w1z;
        }
        goto RyIp1;
        GxNbx:
        goto xbBCo;
        goto k556g;
        k556g:
        C4w1z:
        goto CG20q;
        XktTQ:
        xbBCo:
        goto gUFHY;
        gUFHY:
    }
    public function rehash_password_if_needed($hash, $identity, $password)
    {
        goto Vd0Lg;
        y01KM:
        if ($this->_set_password_db($identity, $password)) {
            goto sfe9_;
        }
        goto XPYNj;
        rLSR3:
        $this->trigger_events([
            "\162\x65\x68\141\x73\x68\x5f\x70\141\x73\163\167\x6f\162\x64",
            "\x72\x65\x68\141\163\150\x5f\160\141\163\x73\167\157\162\144\x5f\x73\165\x63\x63\145\x73\x73\x66\165\x6c",
        ]);
        goto zTECh;
        yOKVS:
        goto Usl5p;
        goto sHbbw;
        gdJ0Z:
        if (!password_needs_rehash($hash, $algo, $params)) {
            goto iXzTC;
        }
        goto y01KM;
        sHbbw:
        sfe9_:
        goto rLSR3;
        Vd0Lg:
        $algo = $this->_get_hash_algo();
        goto QNua2;
        zTECh:
        Usl5p:
        goto bqC1j;
        bqC1j:
        iXzTC:
        goto Ansh4;
        QNua2:
        $params = $this->_get_hash_parameters($identity);
        goto z10id;
        Ansh4:
        zsrKq:
        goto gHRzR;
        XPYNj:
        $this->trigger_events([
            "\162\145\150\x61\163\150\x5f\160\141\163\163\x77\157\162\x64",
            "\162\x65\x68\x61\x73\150\137\x70\141\x73\x73\167\x6f\162\x64\137\x75\x6e\x73\x75\143\x63\145\163\x73\146\x75\154",
        ]);
        goto yOKVS;
        z10id:
        if (!($algo !== false && $params !== false)) {
            goto zsrKq;
        }
        goto gdJ0Z;
        gHRzR:
    }
    public function get_user_by_activation_code($user_code)
    {
        goto FKaLU;
        aoV5_:
        $user = $this->where(
            "\x61\x63\x74\x69\x76\x61\164\151\x6f\156\137\163\145\x6c\x65\x63\x74\x6f\162",
            $token->selector
        )
            ->users()
            ->row();
        goto R4e4F;
        plrZ_:
        BGzey:
        goto FUK2y;
        FKaLU:
        $token = $this->_retrieve_selector_validator_couple($user_code);
        goto aoV5_;
        r9bWA:
        return false;
        goto UyKtG;
        R4e4F:
        if (!$user) {
            goto UhCbt;
        }
        goto ZoKlr;
        n70Iu:
        return $user;
        goto plrZ_;
        ZoKlr:
        if (
            !$this->verify_password($token->validator, $user->activation_code)
        ) {
            goto BGzey;
        }
        goto n70Iu;
        FUK2y:
        UhCbt:
        goto r9bWA;
        UyKtG:
    }
    public function activate($id, $code = false)
    {
        goto osLrY;
        f1q_m:
        $this->trigger_events([
            "\x70\157\x73\x74\x5f\141\x63\164\151\x76\141\x74\145",
            "\x70\x6f\x73\x74\137\x61\143\x74\151\x76\141\164\x65\137\165\156\x73\x75\x63\143\x65\x73\x73\x66\165\154",
        ]);
        goto CnATn;
        ajN5T:
        vzfxY:
        goto f1q_m;
        osLrY:
        $this->trigger_events(
            "\160\x72\x65\x5f\141\143\x74\x69\x76\141\x74\x65"
        );
        goto iBnkm;
        zXlVp:
        $this->trigger_events([
            "\160\157\x73\164\137\141\x63\164\151\166\141\164\x65",
            "\160\x6f\x73\164\137\x61\143\x74\x69\166\x61\164\x65\x5f\x73\x75\143\x63\x65\x73\163\x66\165\x6c",
        ]);
        goto fb3kk;
        AB4pV:
        $this->db->update($this->tables["\165\x73\145\162\x73"], $data, [
            "\x69\144" => $id,
        ]);
        goto Vl7fB;
        XumHp:
        $this->trigger_events("\145\x78\164\x72\141\137\x77\150\145\162\x65");
        goto AB4pV;
        Ma6po:
        if (!($code === false || ($user && $user->id === $id))) {
            goto vzfxY;
        }
        goto heeC0;
        QOOre:
        $user = $this->get_user_by_activation_code($code);
        goto uJqxz;
        fb3kk:
        $this->set_message(
            "\141\x63\164\151\166\x61\164\145\137\163\x75\x63\143\145\163\163\x66\165\154"
        );
        goto f2Xf8;
        Vl7fB:
        if (!($this->db->affected_rows() === 1)) {
            goto HauJG;
        }
        goto zXlVp;
        CnATn:
        $this->set_error(
            "\x61\x63\164\x69\x76\141\x74\x65\x5f\165\x6e\x73\x75\x63\x63\145\x73\163\146\x75\154"
        );
        goto VsqMp;
        VsqMp:
        return false;
        goto CwwFA;
        uJqxz:
        Zps8e:
        goto Ma6po;
        iBnkm:
        if (!($code !== false)) {
            goto Zps8e;
        }
        goto QOOre;
        hbBs_:
        HauJG:
        goto ajN5T;
        heeC0:
        $data = [
            "\x61\143\x74\x69\x76\x61\x74\151\157\156\137\x73\145\x6c\x65\143\x74\x6f\x72" => null,
            "\x61\143\164\x69\166\x61\164\151\x6f\x6e\x5f\143\157\x64\145" => null,
            "\x61\143\164\151\166\x65" => 1,
        ];
        goto XumHp;
        f2Xf8:
        return true;
        goto hbBs_;
        CwwFA:
    }
    public function deactivate($id = null)
    {
        goto LWdCO;
        X4Ogi:
        $this->set_error(
            "\144\x65\141\x63\164\151\x76\x61\x74\145\137\143\x75\162\162\145\156\x74\x5f\165\x73\x65\x72\x5f\165\x6e\x73\x75\143\143\145\x73\163\x66\x75\154"
        );
        goto FzeRb;
        yzUxb:
        $this->set_message(
            "\144\145\141\x63\x74\151\166\141\x74\x65\137\163\165\143\x63\x65\163\x73\x66\165\154"
        );
        goto Qmtrg;
        esi4s:
        $this->activation_code = $token->user_code;
        goto JsPnf;
        QnyPK:
        $this->trigger_events("\145\170\x74\x72\141\137\167\150\x65\162\145");
        goto S8IkR;
        U0FOH:
        if (!isset($id)) {
            goto z5gLf;
        }
        goto AwipR;
        LWdCO:
        $this->trigger_events("\x64\145\141\143\x74\151\x76\x61\164\x65");
        goto U0FOH;
        B2D02:
        $this->set_error(
            "\144\145\141\x63\164\x69\166\x61\164\x65\137\x75\x6e\163\x75\143\x63\x65\x73\x73\x66\x75\154"
        );
        goto kBR3v;
        AwipR:
        if (
            !($this->ion_auth->logged_in() && $this->user()->row()->id == $id)
        ) {
            goto wK101;
        }
        goto X4Ogi;
        tUW5X:
        $token = $this->_generate_selector_validator_couple(20, 40);
        goto esi4s;
        TLk8W:
        z5gLf:
        goto B2D02;
        VkmjP:
        goto axICd;
        goto Cy6yZ;
        riKzu:
        goto EEBnU;
        goto TLk8W;
        Wu4eE:
        EEBnU:
        goto tUW5X;
        Sahhx:
        if ($return) {
            goto WwT16;
        }
        goto ZvfCl;
        FzeRb:
        return false;
        goto Oy0r9;
        JsPnf:
        $data = [
            "\x61\143\x74\x69\166\141\164\x69\x6f\156\x5f\x73\145\x6c\x65\143\164\157\x72" =>
                $token->selector,
            "\141\x63\x74\151\x76\x61\164\x69\x6f\156\137\x63\157\144\x65" =>
                $token->validator_hashed,
            "\141\x63\164\151\166\x65" => 0,
        ];
        goto QnyPK;
        Cy6yZ:
        WwT16:
        goto yzUxb;
        jLFbC:
        $return = $this->db->affected_rows() == 1;
        goto Sahhx;
        Oy0r9:
        wK101:
        goto riKzu;
        ZvfCl:
        $this->set_error(
            "\x64\x65\141\x63\x74\151\166\x61\164\145\137\x75\x6e\x73\x75\143\x63\145\163\163\146\x75\x6c"
        );
        goto VkmjP;
        Qmtrg:
        axICd:
        goto bLTFD;
        kBR3v:
        return false;
        goto Wu4eE;
        S8IkR:
        $this->db->update($this->tables["\x75\163\x65\x72\x73"], $data, [
            "\x69\144" => $id,
        ]);
        goto jLFbC;
        bLTFD:
        return $return;
        goto umK5n;
        umK5n:
    }
    public function clear_forgotten_password_code($identity)
    {
        goto eaJmA;
        tEmNS:
        X9eBT:
        goto ucMSw;
        eW8d0:
        return true;
        goto ig4aN;
        ucMSw:
        $data = [
            "\146\157\162\147\157\164\164\145\x6e\137\160\141\163\163\x77\157\x72\144\x5f\x73\145\154\145\x63\x74\157\x72" => null,
            "\x66\x6f\162\147\157\x74\x74\145\x6e\x5f\x70\x61\x73\163\167\x6f\162\144\137\x63\x6f\x64\145" => null,
            "\146\157\162\147\x6f\164\x74\x65\x6e\x5f\160\141\163\x73\x77\157\162\144\x5f\x74\x69\155\x65" => null,
        ];
        goto LllII;
        LllII:
        $this->db->update($this->tables["\165\163\145\x72\x73"], $data, [
            $this->identity_column => $identity,
        ]);
        goto eW8d0;
        eaJmA:
        if (!empty($identity)) {
            goto X9eBT;
        }
        goto bRdS5;
        bRdS5:
        return false;
        goto tEmNS;
        ig4aN:
    }
    public function clear_remember_code($identity)
    {
        goto kSwjj;
        DmAVX:
        $data = [
            "\162\145\155\145\155\x62\145\162\x5f\163\145\x6c\145\143\x74\157\x72" => null,
            "\162\x65\155\x65\155\x62\x65\162\x5f\143\x6f\144\145" => null,
        ];
        goto vbEAi;
        cGE4O:
        return false;
        goto M0Q4Y;
        pW6dp:
        return true;
        goto lVO0n;
        vbEAi:
        $this->db->update($this->tables["\x75\x73\145\x72\163"], $data, [
            $this->identity_column => $identity,
        ]);
        goto pW6dp;
        M0Q4Y:
        FlOBu:
        goto DmAVX;
        kSwjj:
        if (!empty($identity)) {
            goto FlOBu;
        }
        goto cGE4O;
        lVO0n:
    }
    public function reset_password($identity, $new)
    {
        goto uRF3W;
        Swt2m:
        H6Mde:
        goto qD5ea;
        vzRnk:
        $this->set_error(
            "\160\x61\163\x73\x77\157\162\144\x5f\x63\x68\141\156\x67\145\137\x75\x6e\163\x75\x63\x63\145\x73\x73\x66\165\x6c"
        );
        goto D5OjS;
        HLDqb:
        $this->trigger_events([
            "\x70\x6f\163\164\x5f\x63\150\x61\156\x67\145\x5f\160\141\163\x73\167\x6f\162\144",
            "\160\x6f\163\164\x5f\143\x68\x61\x6e\147\145\x5f\x70\x61\x73\x73\x77\157\162\144\137\163\165\x63\143\145\163\163\x66\165\154",
        ]);
        goto OC4xU;
        fmIxq:
        if ($this->identity_check($identity)) {
            goto OCsjx;
        }
        goto vChn0;
        zgeqh:
        eFJAA:
        goto HLDqb;
        uRF3W:
        $this->trigger_events(
            "\160\x72\145\x5f\x63\150\x61\x6e\147\145\x5f\x70\x61\x73\163\x77\157\162\144"
        );
        goto fmIxq;
        eckoD:
        return false;
        goto zEu2_;
        vChn0:
        $this->trigger_events([
            "\160\x6f\163\x74\x5f\x63\x68\141\156\x67\145\x5f\160\141\x73\163\x77\157\x72\x64",
            "\x70\157\163\164\x5f\143\150\141\x6e\x67\x65\137\160\x61\x73\x73\167\157\162\x64\137\165\x6e\x73\165\143\143\145\163\163\146\x75\x6c",
        ]);
        goto eckoD;
        zEu2_:
        OCsjx:
        goto tgwR3;
        OC4xU:
        $this->set_message(
            "\160\x61\163\163\167\157\162\144\x5f\x63\x68\x61\x6e\147\x65\137\x73\x75\143\143\x65\x73\163\146\x75\154"
        );
        goto Swt2m;
        qD5ea:
        return $return;
        goto e0xSG;
        NfT3r:
        $this->trigger_events([
            "\160\x6f\163\164\x5f\x63\150\x61\156\147\145\x5f\160\141\x73\x73\167\x6f\162\x64",
            "\x70\x6f\163\x74\x5f\143\150\x61\156\147\x65\x5f\x70\x61\x73\x73\x77\x6f\x72\x64\x5f\165\x6e\163\x75\143\143\145\163\x73\146\x75\x6c",
        ]);
        goto vzRnk;
        EafyK:
        if ($return) {
            goto eFJAA;
        }
        goto NfT3r;
        D5OjS:
        goto H6Mde;
        goto zgeqh;
        tgwR3:
        $return = $this->_set_password_db($identity, $new);
        goto EafyK;
        e0xSG:
    }
    public function change_password($identity, $old, $new)
    {
        goto mUbm3;
        PTRwI:
        $this->set_error(
            "\160\x61\x73\x73\167\157\x72\x64\x5f\143\x68\x61\156\x67\145\x5f\x75\x6e\x73\165\143\143\145\x73\163\146\165\154"
        );
        goto oilZo;
        l5Jqg:
        $this->set_error(
            "\x70\x61\x73\163\x77\157\162\144\x5f\x63\150\141\x6e\x67\x65\137\165\x6e\x73\x75\143\143\145\163\163\x66\165\x6c"
        );
        goto kD2IS;
        desz2:
        if (!($query->num_rows() !== 1)) {
            goto sIG8E;
        }
        goto kShpZ;
        sGdh_:
        $this->trigger_events([
            "\x70\x6f\163\164\137\x63\x68\x61\156\x67\145\x5f\x70\x61\163\x73\167\157\162\144",
            "\x70\157\x73\164\137\143\x68\x61\156\147\145\x5f\160\141\163\163\x77\157\162\x64\x5f\165\x6e\x73\x75\143\143\x65\163\163\x66\165\154",
        ]);
        goto kjhXQ;
        PozLC:
        sIG8E:
        goto gEcQL;
        kShpZ:
        $this->trigger_events([
            "\160\x6f\x73\164\x5f\x63\x68\141\156\147\145\137\x70\x61\163\x73\x77\x6f\x72\x64",
            "\x70\157\163\x74\x5f\x63\150\141\x6e\147\145\137\x70\x61\x73\x73\167\157\x72\144\137\165\x6e\x73\165\143\143\145\x73\x73\146\x75\x6c",
        ]);
        goto PTRwI;
        oilZo:
        return false;
        goto PozLC;
        gEcQL:
        $user = $query->row();
        goto KCKWj;
        KCKWj:
        if (!$this->verify_password($old, $user->password, $identity)) {
            goto HZERS;
        }
        goto fKE6Y;
        eAOtL:
        $this->set_message(
            "\x70\x61\x73\x73\x77\x6f\162\144\137\143\150\x61\156\x67\x65\x5f\x73\165\x63\x63\145\x73\163\146\x75\x6c"
        );
        goto WlVJL;
        xHTkz:
        return $result;
        goto Sfko_;
        WlVJL:
        ERGbF:
        goto xHTkz;
        Sfko_:
        HZERS:
        goto l5Jqg;
        fKE6Y:
        $result = $this->_set_password_db($identity, $new);
        goto tb0In;
        dRDLT:
        $query = $this->db
            ->select("\x69\144\54\x20\160\x61\163\x73\167\x6f\162\144")
            ->where($this->identity_column, $identity)
            ->limit(1)
            ->order_by("\x69\x64", "\144\x65\x73\x63")
            ->get($this->tables["\165\x73\145\x72\x73"]);
        goto desz2;
        tb0In:
        if ($result) {
            goto nWvu7;
        }
        goto sGdh_;
        du0vt:
        goto ERGbF;
        goto akX_X;
        akX_X:
        nWvu7:
        goto gMe0m;
        mUbm3:
        $this->trigger_events(
            "\x70\x72\x65\137\143\150\x61\x6e\147\x65\x5f\x70\x61\163\x73\167\x6f\162\x64"
        );
        goto swSWf;
        gMe0m:
        $this->trigger_events([
            "\x70\x6f\163\164\137\143\150\141\156\147\145\137\160\x61\163\163\167\x6f\162\144",
            "\160\x6f\x73\164\137\x63\x68\x61\x6e\x67\x65\x5f\160\x61\163\163\x77\x6f\162\x64\137\163\x75\x63\143\145\163\163\x66\x75\x6c",
        ]);
        goto eAOtL;
        swSWf:
        $this->trigger_events("\145\x78\164\162\141\x5f\167\x68\145\x72\x65");
        goto dRDLT;
        kD2IS:
        return false;
        goto dVqIB;
        kjhXQ:
        $this->set_error(
            "\x70\141\x73\x73\x77\x6f\162\x64\x5f\x63\x68\141\156\147\145\137\x75\x6e\163\x75\143\x63\x65\163\x73\146\165\x6c"
        );
        goto du0vt;
        dVqIB:
    }
    public function username_check($username = "")
    {
        goto uX5Dm;
        YzV7n:
        if (!empty($username)) {
            goto BjOMR;
        }
        goto wI7Pi;
        xfUOk:
        $this->trigger_events("\x65\x78\x74\162\141\137\x77\150\145\162\x65");
        goto BLuhO;
        BLuhO:
        return $this->db
            ->where("\165\x73\145\x72\156\141\x6d\145", $username)
            ->limit(1)
            ->count_all_results($this->tables["\165\x73\145\x72\163"]) > 0;
        goto MF02D;
        uX5Dm:
        $this->trigger_events(
            "\165\163\x65\x72\x6e\141\155\x65\137\x63\x68\x65\143\x6b"
        );
        goto YzV7n;
        wI7Pi:
        return false;
        goto ladNj;
        ladNj:
        BjOMR:
        goto xfUOk;
        MF02D:
    }
    public function email_check($email = "")
    {
        goto zD1tV;
        RpzVZ:
        VpJS2:
        goto Tiec8;
        DUtNr:
        return false;
        goto RpzVZ;
        f4rix:
        if (!empty($email)) {
            goto VpJS2;
        }
        goto DUtNr;
        RQUL0:
        return $this->db
            ->where("\x65\155\141\151\x6c", $email)
            ->limit(1)
            ->count_all_results($this->tables["\x75\163\x65\162\x73"]) > 0;
        goto BGHlz;
        zD1tV:
        $this->trigger_events("\145\x6d\141\x69\x6c\x5f\x63\150\145\143\x6b");
        goto f4rix;
        Tiec8:
        $this->trigger_events("\145\170\164\162\x61\137\x77\x68\145\162\x65");
        goto RQUL0;
        BGHlz:
    }
    public function identity_check($identity = "")
    {
        goto roxUt;
        S8GpD:
        return $this->db
            ->where($this->identity_column, $identity)
            ->limit(1)
            ->count_all_results($this->tables["\165\x73\145\x72\x73"]) > 0;
        goto sbei0;
        PbFtR:
        return false;
        goto b_E3a;
        A0xLa:
        if (!empty($identity)) {
            goto RnRkv;
        }
        goto PbFtR;
        roxUt:
        $this->trigger_events(
            "\151\144\x65\x6e\164\151\x74\x79\137\x63\150\x65\143\x6b"
        );
        goto A0xLa;
        b_E3a:
        RnRkv:
        goto S8GpD;
        sbei0:
    }
    public function get_user_id_from_identity($identity = "")
    {
        goto uVI3b;
        uVI3b:
        if (!empty($identity)) {
            goto xu9F3;
        }
        goto fLcwT;
        scgUL:
        $user = $query->row();
        goto vFkWk;
        hHvs0:
        xu9F3:
        goto ewMdH;
        fLcwT:
        return false;
        goto hHvs0;
        ewMdH:
        $query = $this->db
            ->select("\x69\x64")
            ->where($this->identity_column, $identity)
            ->limit(1)
            ->get($this->tables["\165\x73\145\x72\x73"]);
        goto ISuCj;
        Q3_ff:
        return false;
        goto kJ21l;
        vFkWk:
        return $user->id;
        goto loUwT;
        kJ21l:
        DVSay:
        goto scgUL;
        ISuCj:
        if (!($query->num_rows() !== 1)) {
            goto DVSay;
        }
        goto Q3_ff;
        loUwT:
    }
    public function forgotten_password($identity)
    {
        goto F6Lfs;
        BS1B3:
        $this->trigger_events("\x65\x78\164\162\x61\x5f\x77\x68\145\162\x65");
        goto M_hdG;
        nz6M8:
        AqYmH:
        goto LMYjT;
        F2BEo:
        $update = [
            "\146\157\x72\147\x6f\164\x74\x65\156\x5f\160\x61\x73\163\167\157\x72\144\x5f\163\x65\154\x65\143\164\157\162" =>
                $token->selector,
            "\146\157\x72\x67\x6f\x74\x74\x65\156\137\160\141\x73\163\167\157\x72\144\x5f\x63\x6f\144\145" =>
                $token->validator_hashed,
            "\x66\x6f\x72\x67\157\x74\164\x65\x6e\137\160\x61\163\x73\x77\157\x72\x64\137\164\x69\155\x65" => time(),
        ];
        goto BS1B3;
        sl07i:
        $this->trigger_events([
            "\x70\157\x73\x74\x5f\146\x6f\x72\147\x6f\164\x74\145\156\x5f\160\x61\163\x73\x77\157\162\144",
            "\x70\157\x73\164\137\146\157\162\x67\x6f\x74\x74\145\156\x5f\160\141\x73\x73\x77\157\x72\144\137\x75\x6e\x73\165\x63\x63\x65\163\163\146\x75\x6c",
        ]);
        goto yhIdj;
        H2zD3:
        L1E_S:
        goto agwZt;
        NugUY:
        if ($this->db->affected_rows() === 1) {
            goto HQNn2;
        }
        goto AvvHY;
        F6Lfs:
        if (!empty($identity)) {
            goto AqYmH;
        }
        goto sl07i;
        AvvHY:
        $this->trigger_events([
            "\x70\157\x73\x74\x5f\146\157\x72\x67\x6f\164\164\145\156\137\160\x61\x73\x73\x77\157\162\x64",
            "\x70\x6f\163\x74\137\146\x6f\x72\x67\157\x74\164\x65\156\x5f\160\141\x73\163\x77\157\x72\x64\x5f\165\156\x73\165\143\x63\x65\x73\x73\x66\x75\x6c",
        ]);
        goto KkjrU;
        rsSQ0:
        goto L1E_S;
        goto pWyBv;
        KkjrU:
        return false;
        goto rsSQ0;
        M_hdG:
        $this->db->update($this->tables["\165\x73\145\162\x73"], $update, [
            $this->identity_column => $identity,
        ]);
        goto NugUY;
        DjlAF:
        return $token->user_code;
        goto H2zD3;
        yhIdj:
        return false;
        goto nz6M8;
        pWyBv:
        HQNn2:
        goto CjMqU;
        LMYjT:
        $token = $this->_generate_selector_validator_couple(20, 80);
        goto F2BEo;
        CjMqU:
        $this->trigger_events([
            "\160\157\163\164\x5f\146\x6f\x72\x67\x6f\164\x74\x65\156\x5f\160\x61\x73\163\167\157\x72\x64",
            "\x70\157\163\164\x5f\146\157\x72\147\157\164\164\x65\x6e\x5f\160\141\x73\x73\167\157\162\x64\137\x73\x75\143\143\145\163\x73\x66\165\154",
        ]);
        goto DjlAF;
        agwZt:
    }
    public function get_user_by_forgotten_password_code($user_code)
    {
        goto g87FE;
        g87FE:
        $token = $this->_retrieve_selector_validator_couple($user_code);
        goto wv1X9;
        UOzpr:
        if (!$user) {
            goto CdhAY;
        }
        goto egjTc;
        BMiLm:
        CdhAY:
        goto zgCZR;
        wv1X9:
        $user = $this->where(
            "\146\x6f\x72\147\157\164\164\x65\156\x5f\160\141\163\163\167\157\x72\x64\x5f\x73\x65\x6c\x65\143\x74\x6f\162",
            $token->selector
        )
            ->users()
            ->row();
        goto UOzpr;
        egjTc:
        if (
            !$this->verify_password(
                $token->validator,
                $user->forgotten_password_code
            )
        ) {
            goto j9E82;
        }
        goto DOGuY;
        c6_Vp:
        j9E82:
        goto BMiLm;
        zgCZR:
        return false;
        goto LVtbq;
        DOGuY:
        return $user;
        goto c6_Vp;
        LVtbq:
    }
    public function register(
        $identity,
        $password,
        $email,
        $additional_data = [],
        $groups = []
    ) {
        goto MIfcM;
        u3l7x:
        foreach ($groups as $group) {
            $this->add_to_group($group, $id);
            ph9HA:
        }
        goto HkjmS;
        c2YPK:
        if (!($password === false)) {
            goto tMpwl;
        }
        goto ct80J;
        yCs5U:
        $password = $this->hash_password($password);
        goto c2YPK;
        l_pTL:
        return isset($id) ? $id : false;
        goto Y9FYA;
        HmKcv:
        $query = $this->db
            ->get_where(
                $this->tables["\147\162\x6f\x75\x70\163"],
                [
                    "\x6e\x61\x6d\145" => $this->config->item(
                        "\144\145\x66\x61\165\x6c\x74\137\147\162\x6f\165\160",
                        "\151\x6f\x6e\x5f\x61\x75\x74\150"
                    ),
                ],
                1
            )
            ->row();
        goto Vi7qa;
        HkjmS:
        DYvl2:
        goto NM0EP;
        WHc5M:
        return false;
        goto FDoui;
        zjgDm:
        $data = [
            $this->identity_column => $identity,
            "\165\x73\x65\x72\156\141\x6d\x65" => $identity,
            "\160\x61\x73\163\x77\157\x72\x64" => $password,
            "\x65\155\x61\x69\x6c" => $email,
            "\151\160\137\x61\x64\x64\162\x65\163\163" => $ip_address,
            "\x63\x72\x65\x61\x74\145\x64\137\157\156" => time(),
            "\x61\x63\x74\x69\166\145" => $manual_activation === false ? 1 : 0,
        ];
        goto vdxKq;
        Hkyxz:
        $groups[] = $default_group->id;
        goto lM_BI;
        h3cf_:
        tMpwl:
        goto zjgDm;
        WZ2Ib:
        $this->set_error(
            "\141\143\x63\157\x75\x6e\164\x5f\143\162\x65\141\164\151\x6f\156\137\x6d\151\x73\x73\151\x6e\x67\x5f\144\x65\146\x61\165\x6c\x74\x5f\x67\162\x6f\x75\x70"
        );
        goto WHc5M;
        eJldb:
        $id = $this->db->insert_id(
            $this->tables["\165\x73\145\162\x73"] .
                "\x5f\151\144\x5f\x73\x65\161"
        );
        goto eGqVr;
        pib8k:
        goto JpKbU;
        goto AoEOh;
        D2Wyo:
        jWlCC:
        goto d7L6D;
        NM0EP:
        pIjyo:
        goto zU_aL;
        eGqVr:
        if (!(isset($default_group->id) && empty($groups))) {
            goto wzXcS;
        }
        goto Hkyxz;
        ct80J:
        $this->set_error(
            "\141\x63\x63\x6f\165\x6e\x74\x5f\x63\x72\145\141\164\151\x6f\x6e\137\x75\156\x73\x75\x63\143\145\163\x73\146\165\x6c"
        );
        goto usejn;
        InkPp:
        if ($this->identity_check($identity)) {
            goto FtFH_;
        }
        goto kqxmG;
        kqxmG:
        if (
            !(
                !$this->config->item(
                    "\144\x65\146\141\165\x6c\x74\137\x67\x72\157\165\x70",
                    "\151\x6f\x6e\x5f\141\165\x74\150"
                ) && empty($groups)
            )
        ) {
            goto qkdMb;
        }
        goto WZ2Ib;
        MIfcM:
        $this->trigger_events(
            "\x70\x72\x65\x5f\x72\145\147\x69\x73\164\145\x72"
        );
        goto ZTL6U;
        VYA16:
        $this->db->insert($this->tables["\165\x73\x65\x72\163"], $user_data);
        goto eJldb;
        RWgFU:
        $this->trigger_events("\x65\170\x74\162\x61\x5f\163\145\x74");
        goto VYA16;
        usejn:
        return false;
        goto h3cf_;
        zU_aL:
        $this->trigger_events(
            "\x70\157\163\x74\137\162\x65\x67\x69\163\164\x65\162"
        );
        goto l_pTL;
        vdxKq:
        $user_data = array_merge(
            $this->_filter_data(
                $this->tables["\x75\163\145\162\x73"],
                $additional_data
            ),
            $data
        );
        goto RWgFU;
        KnPdj:
        return false;
        goto zwOmj;
        KKxlH:
        $this->set_error(
            "\141\x63\143\x6f\165\x6e\164\137\143\x72\x65\x61\164\x69\157\156\137\x64\165\160\x6c\151\x63\x61\x74\145\x5f\x69\x64\145\x6e\x74\x69\x74\171"
        );
        goto KnPdj;
        lM_BI:
        wzXcS:
        goto YL0eK;
        ZTL6U:
        $manual_activation = $this->config->item(
            "\x6d\141\156\165\x61\x6c\137\x61\143\x74\x69\x76\141\164\x69\157\x6e",
            "\x69\157\x6e\137\141\x75\x74\150"
        );
        goto InkPp;
        g4iqU:
        $this->set_error(
            "\141\x63\143\x6f\165\x6e\164\137\x63\162\x65\x61\164\x69\x6f\156\137\x69\x6e\x76\141\x6c\x69\144\137\144\x65\x66\x61\x75\x6c\164\x5f\x67\162\x6f\x75\x70"
        );
        goto BzKbQ;
        zwOmj:
        JpKbU:
        goto HmKcv;
        YxXs3:
        $ip_address = $this->input->ip_address();
        goto yCs5U;
        AoEOh:
        FtFH_:
        goto KKxlH;
        d7L6D:
        $default_group = $query;
        goto YxXs3;
        FDoui:
        qkdMb:
        goto pib8k;
        BzKbQ:
        return false;
        goto D2Wyo;
        Vi7qa:
        if (!(!isset($query->id) && empty($groups))) {
            goto jWlCC;
        }
        goto g4iqU;
        YL0eK:
        if (empty($groups)) {
            goto pIjyo;
        }
        goto u3l7x;
        Y9FYA:
    }
    public function login($identity, $password, $remember = false)
    {
        goto hxwEi;
        EsBM8:
        O7fma:
        goto P6UmR;
        CR3gh:
        $this->set_session($user);
        goto KncO0;
        yncn3:
        goto v3Pe8;
        goto mQoM9;
        ensJY:
        ejtwJ:
        goto PigcR;
        yLESw:
        $this->clear_remember_code($identity);
        goto yncn3;
        PigcR:
        if (!($query->num_rows() === 1)) {
            goto tikT_;
        }
        goto U9eOw;
        hxwEi:
        $this->trigger_events("\x70\162\x65\x5f\154\x6f\147\x69\156");
        goto uKXMH;
        P6UmR:
        $this->rehash_password_if_needed($user->password, $identity, $password);
        goto S1Ad7;
        UpQta:
        $this->trigger_events([
            "\160\157\163\164\137\x6c\x6f\147\151\x6e",
            "\x70\157\x73\164\137\154\157\x67\x69\156\x5f\163\x75\143\x63\x65\x73\163\x66\165\x6c",
        ]);
        goto zDoWp;
        KncO0:
        $this->update_last_login($user->id);
        goto DWmC2;
        x4KaQ:
        return false;
        goto ensJY;
        HOseE:
        return false;
        goto wufQC;
        uq276:
        $this->set_error(
            "\154\x6f\147\151\156\137\x74\151\x6d\x65\157\x75\x74"
        );
        goto x4KaQ;
        C9giy:
        fosCR:
        goto CR3gh;
        YkGD4:
        v3Pe8:
        goto EsBM8;
        abTnF:
        $this->remember_user($identity);
        goto YkGD4;
        mQoM9:
        dDQ7N:
        goto abTnF;
        zh0Pl:
        $this->hash_password($password);
        goto UZ6gq;
        I42Nc:
        $this->trigger_events("\145\170\x74\x72\141\x5f\x77\x68\x65\162\145");
        goto J1xPP;
        UZ6gq:
        $this->increase_login_attempts($identity);
        goto N1ooZ;
        yILc2:
        if (!$this->is_max_login_attempts_exceeded($identity)) {
            goto ejtwJ;
        }
        goto v1Pju;
        kUzQy:
        if (
            !$this->config->item(
                "\x72\x65\155\145\x6d\x62\145\162\137\x75\x73\x65\162\x73",
                "\151\x6f\x6e\137\141\x75\164\150"
            )
        ) {
            goto O7fma;
        }
        goto x25cx;
        N1ooZ:
        $this->trigger_events(
            "\x70\x6f\x73\x74\137\154\157\x67\151\x6e\137\x75\x6e\163\x75\x63\143\x65\x73\x73\x66\165\154"
        );
        goto Nr7Jz;
        jmE2A:
        if (!$this->verify_password($password, $user->password, $identity)) {
            goto fkCTv;
        }
        goto pjbv3;
        YQ22O:
        $this->trigger_events(
            "\160\x6f\163\x74\x5f\x6c\x6f\147\x69\156\x5f\165\x6e\x73\165\143\143\145\x73\163\x66\x75\x6c"
        );
        goto uq276;
        U9eOw:
        $user = $query->row();
        goto jmE2A;
        pjbv3:
        if (!($user->active == 0)) {
            goto fosCR;
        }
        goto JhXvR;
        zDoWp:
        $this->set_message(
            "\x6c\x6f\x67\151\156\137\x73\x75\143\x63\x65\x73\163\x66\x75\154"
        );
        goto C3MmD;
        v1Pju:
        $this->hash_password($password);
        goto YQ22O;
        f1Gd_:
        return false;
        goto MnLLA;
        Nr7Jz:
        $this->set_error(
            "\x6c\x6f\x67\x69\156\x5f\165\156\x73\165\x63\143\x65\x73\x73\x66\x75\154"
        );
        goto HOseE;
        jx4Hh:
        fkCTv:
        goto mXTHS;
        H2r4J:
        $this->set_error(
            "\x6c\157\x67\151\x6e\137\x75\156\x73\165\x63\x63\145\163\163\x66\x75\x6c"
        );
        goto f1Gd_;
        DWmC2:
        $this->clear_login_attempts($identity);
        goto mq33g;
        J1xPP:
        $query = $this->db
            ->select(
                $this->identity_column .
                    "\x2c\40\x65\x6d\141\151\154\x2c\40\151\x64\54\40\x70\141\163\x73\x77\157\x72\x64\54\x20\141\143\164\x69\166\x65\54\40\154\141\x73\x74\x5f\154\157\x67\x69\156"
            )
            ->where($this->identity_column, $identity)
            ->limit(1)
            ->order_by("\x69\x64", "\x64\x65\x73\143")
            ->get($this->tables["\x75\163\145\x72\x73"]);
        goto yILc2;
        C3MmD:
        return true;
        goto jx4Hh;
        mq33g:
        $this->clear_forgotten_password_code($identity);
        goto kUzQy;
        A4xjV:
        $this->set_error(
            "\x6c\x6f\147\x69\156\137\165\156\x73\x75\143\x63\145\163\163\x66\x75\x6c\x5f\x6e\157\x74\x5f\x61\143\x74\x69\166\145"
        );
        goto vLPZW;
        mXTHS:
        tikT_:
        goto zh0Pl;
        uKXMH:
        if (!(empty($identity) || empty($password))) {
            goto LV96I;
        }
        goto H2r4J;
        x25cx:
        if ($remember) {
            goto dDQ7N;
        }
        goto yLESw;
        S1Ad7:
        $this->session->sess_regenerate(false);
        goto UpQta;
        JhXvR:
        $this->trigger_events(
            "\x70\x6f\163\x74\137\154\x6f\x67\x69\156\x5f\165\x6e\x73\165\x63\143\145\163\163\146\165\154"
        );
        goto A4xjV;
        MnLLA:
        LV96I:
        goto I42Nc;
        vLPZW:
        return false;
        goto C9giy;
        wufQC:
    }
    public function recheck_session()
    {
        goto WT_hm;
        vUIAA:
        K5YTD:
        goto h4YB9;
        WT_hm:
        $recheck =
            null !==
            $this->config->item(
                "\162\145\143\150\x65\x63\153\137\x74\x69\155\145\x72",
                "\x69\x6f\156\137\141\x75\x74\150"
            )
                ? $this->config->item(
                    "\162\145\143\150\145\143\153\x5f\x74\151\155\145\x72",
                    "\x69\x6f\x6e\x5f\x61\x75\164\x68"
                )
                : 0;
        goto JbFDO;
        trr3e:
        goto rjf4G;
        goto ABgf0;
        DEs50:
        if ($query->num_rows() === 1) {
            goto NV8m_;
        }
        goto K89uF;
        JwPhi:
        return false;
        goto trr3e;
        kAB5Y:
        rjf4G:
        goto vUIAA;
        GIxKO:
        $last_login = $this->session->userdata(
            "\x6c\x61\163\x74\x5f\143\x68\145\143\153"
        );
        goto mJ_xU;
        h4YB9:
        D05m_:
        goto kAIc9;
        XBK_P:
        $query = $this->db
            ->select("\151\x64")
            ->where([
                $this->identity_column => $this->session->userdata(
                    "\x69\x64\x65\x6e\164\151\164\171"
                ),
                "\x61\x63\x74\x69\x76\145" => "\x31",
            ])
            ->limit(1)
            ->order_by("\x69\144", "\144\145\x73\x63")
            ->get($this->tables["\x75\163\145\x72\x73"]);
        goto DEs50;
        mJ_xU:
        if (!($last_login + $recheck < time())) {
            goto K5YTD;
        }
        goto XBK_P;
        PAynh:
        $this->session->set_userdata(
            "\x6c\x61\163\164\137\x63\150\145\x63\153",
            time()
        );
        goto kAB5Y;
        Hn6Ww:
        $identity = $this->config->item(
            "\151\144\145\x6e\x74\x69\x74\x79",
            "\151\157\156\x5f\141\165\x74\x68"
        );
        goto CBXxX;
        ABgf0:
        NV8m_:
        goto PAynh;
        kAIc9:
        return (bool) $this->session->userdata(
            "\151\144\x65\x6e\x74\151\x74\171"
        );
        goto GAXQo;
        JbFDO:
        if (!($recheck !== 0)) {
            goto D05m_;
        }
        goto GIxKO;
        CBXxX:
        $this->session->unset_userdata([
            $identity,
            "\x69\x64",
            "\x75\163\x65\x72\137\151\144",
        ]);
        goto JwPhi;
        K89uF:
        $this->trigger_events("\x6c\x6f\147\x6f\165\x74");
        goto Hn6Ww;
        GAXQo:
    }
    public function is_max_login_attempts_exceeded(
        $identity,
        $ip_address = null
    ) {
        goto kpge_;
        ZBr06:
        t0pGb:
        goto kFmMA;
        grEv9:
        return $attempts >= $max_attempts;
        goto ZBr06;
        F6bjr:
        $max_attempts = $this->config->item(
            "\155\x61\x78\x69\155\x75\155\137\x6c\157\x67\151\156\137\x61\x74\164\x65\x6d\x70\164\163",
            "\151\157\x6e\x5f\141\165\x74\150"
        );
        goto k33uU;
        kFmMA:
        ChwVj:
        goto OH8fL;
        k33uU:
        if (!($max_attempts > 0)) {
            goto t0pGb;
        }
        goto ycyLD;
        ycyLD:
        $attempts = $this->get_attempts_num($identity, $ip_address);
        goto grEv9;
        kpge_:
        if (
            !$this->config->item(
                "\164\162\x61\x63\153\x5f\x6c\x6f\147\x69\x6e\x5f\141\x74\164\145\x6d\x70\x74\x73",
                "\x69\157\x6e\137\x61\x75\x74\x68"
            )
        ) {
            goto ChwVj;
        }
        goto F6bjr;
        OH8fL:
        return false;
        goto aDnnD;
        aDnnD:
    }
    public function get_attempts_num($identity, $ip_address = null)
    {
        goto pTTDp;
        W3njJ:
        if (
            !$this->config->item(
                "\x74\x72\141\x63\x6b\x5f\154\x6f\x67\x69\156\137\151\160\x5f\x61\144\x64\162\145\163\163",
                "\151\157\156\x5f\141\x75\164\150"
            )
        ) {
            goto xYbu2;
        }
        goto tpM8U;
        tpM8U:
        if (isset($ip_address)) {
            goto vvvF7;
        }
        goto enU73;
        v8uPd:
        M5zmi:
        goto Axxuc;
        mZVbu:
        $qres = $this->db->get(
            $this->tables[
                "\154\x6f\147\151\156\137\141\164\164\145\155\x70\x74\163"
            ]
        );
        goto xAvNV;
        enU73:
        $ip_address = $this->input->ip_address();
        goto URaBB;
        URaBB:
        vvvF7:
        goto eKDCs;
        pTTDp:
        if (
            !$this->config->item(
                "\x74\162\141\x63\153\x5f\154\157\x67\151\x6e\x5f\141\164\164\x65\155\x70\164\x73",
                "\x69\x6f\156\x5f\141\165\x74\x68"
            )
        ) {
            goto M5zmi;
        }
        goto wR_Z8;
        wR_Z8:
        $this->db->select("\x31", false);
        goto MQLIH;
        bmYz2:
        xYbu2:
        goto nW4nI;
        nW4nI:
        $this->db->where(
            "\164\151\155\x65\x20\76",
            time() -
                $this->config->item(
                    "\154\157\143\153\157\165\164\x5f\x74\x69\155\x65",
                    "\151\x6f\x6e\137\x61\165\164\150"
                ),
            false
        );
        goto mZVbu;
        xAvNV:
        return $qres->num_rows();
        goto v8uPd;
        Axxuc:
        return 0;
        goto OGoIS;
        MQLIH:
        $this->db->where("\x6c\157\x67\151\156", $identity);
        goto W3njJ;
        eKDCs:
        $this->db->where(
            "\x69\x70\x5f\x61\x64\144\162\x65\x73\163",
            $ip_address
        );
        goto bmYz2;
        OGoIS:
    }
    public function get_last_attempt_time($identity, $ip_address = null)
    {
        goto j5OaN;
        mJdjX:
        $ip_address = $this->input->ip_address();
        goto CVXTW;
        j5OaN:
        if (
            !$this->config->item(
                "\x74\x72\x61\x63\x6b\137\154\157\x67\x69\156\x5f\141\164\164\145\x6d\160\x74\163",
                "\x69\x6f\x6e\137\x61\x75\164\x68"
            )
        ) {
            goto tlm3D;
        }
        goto L_mEh;
        hEscl:
        $this->db->order_by("\151\x64", "\x64\x65\163\143");
        goto JXcy_;
        j9xCb:
        eUwyk:
        goto w2N9H;
        fb1PI:
        $this->db->where(
            "\x69\x70\137\141\x64\144\x72\145\163\x73",
            $ip_address
        );
        goto U8Bxc;
        JXcy_:
        $qres = $this->db->get(
            $this->tables[
                "\154\157\147\x69\156\x5f\x61\x74\x74\145\x6d\160\164\163"
            ],
            1
        );
        goto NSdpT;
        NSdpT:
        if (!($qres->num_rows() > 0)) {
            goto eUwyk;
        }
        goto ToW84;
        L_mEh:
        $this->db->select("\x74\x69\x6d\145");
        goto rFoQ0;
        rFoQ0:
        $this->db->where("\154\157\147\151\156", $identity);
        goto SpXMe;
        CVXTW:
        eEPoM:
        goto fb1PI;
        PrZtt:
        if (isset($ip_address)) {
            goto eEPoM;
        }
        goto mJdjX;
        w2N9H:
        tlm3D:
        goto uWBX0;
        ToW84:
        return $qres->row()->time;
        goto j9xCb;
        U8Bxc:
        srQ4A:
        goto hEscl;
        uWBX0:
        return 0;
        goto JjJKc;
        SpXMe:
        if (
            !$this->config->item(
                "\x74\x72\x61\143\153\137\x6c\x6f\147\x69\x6e\x5f\151\x70\137\x61\144\144\162\145\x73\x73",
                "\151\x6f\156\137\x61\165\164\x68"
            )
        ) {
            goto srQ4A;
        }
        goto PrZtt;
        JjJKc:
    }
    public function get_last_attempt_ip($identity)
    {
        goto HUZ3q;
        hvm63:
        mYELs:
        goto q1jSi;
        MEScp:
        $this->db->where("\154\157\x67\x69\x6e", $identity);
        goto lZsf9;
        lZsf9:
        $this->db->order_by("\151\x64", "\144\x65\x73\x63");
        goto y0WG7;
        DSneM:
        return "";
        goto eVVwd;
        rfBnv:
        $this->db->select("\151\x70\x5f\x61\x64\144\x72\145\x73\x73");
        goto MEScp;
        y0WG7:
        $qres = $this->db->get(
            $this->tables[
                "\x6c\x6f\147\x69\156\137\141\x74\164\x65\155\x70\x74\163"
            ],
            1
        );
        goto SpKQ5;
        q1jSi:
        nv5Sl:
        goto DSneM;
        SpKQ5:
        if (!($qres->num_rows() > 0)) {
            goto mYELs;
        }
        goto lFdrW;
        HUZ3q:
        if (
            !(
                $this->config->item(
                    "\164\162\x61\143\153\137\154\x6f\147\x69\156\137\x61\164\x74\145\x6d\x70\x74\163",
                    "\x69\157\x6e\x5f\x61\x75\164\x68"
                ) &&
                $this->config->item(
                    "\164\162\x61\143\x6b\137\x6c\157\147\x69\156\x5f\x69\160\137\141\144\144\162\x65\x73\163",
                    "\151\x6f\156\x5f\x61\165\x74\150"
                )
            )
        ) {
            goto nv5Sl;
        }
        goto rfBnv;
        lFdrW:
        return $qres->row()->ip_address;
        goto hvm63;
        eVVwd:
    }
    public function increase_login_attempts($identity)
    {
        goto pi_3Z;
        pi_3Z:
        if (
            !$this->config->item(
                "\x74\162\141\x63\153\137\154\157\147\151\156\137\141\x74\164\145\x6d\x70\164\163",
                "\x69\x6f\x6e\x5f\141\x75\x74\x68"
            )
        ) {
            goto bUIit;
        }
        goto YmEFR;
        HkRWW:
        UuxId:
        goto AIz1X;
        PQTP_:
        if (
            !$this->config->item(
                "\164\x72\141\x63\153\137\154\157\x67\x69\156\137\x69\x70\137\141\x64\x64\162\145\x73\163",
                "\151\157\x6e\x5f\141\165\x74\x68"
            )
        ) {
            goto UuxId;
        }
        goto aYMUZ;
        zO4rb:
        bUIit:
        goto TGT_2;
        aYMUZ:
        $data[
            "\151\160\x5f\x61\144\144\x72\145\163\163"
        ] = $this->input->ip_address();
        goto HkRWW;
        YmEFR:
        $data = [
            "\x69\x70\137\x61\144\144\x72\x65\163\163" => "",
            "\154\x6f\147\151\156" => $identity,
            "\164\x69\155\145" => time(),
        ];
        goto PQTP_;
        AIz1X:
        return $this->db->insert(
            $this->tables[
                "\x6c\157\147\151\x6e\137\141\164\164\x65\155\x70\x74\163"
            ],
            $data
        );
        goto zO4rb;
        TGT_2:
        return false;
        goto XivJK;
        XivJK:
    }
    public function clear_login_attempts(
        $identity,
        $old_attempts_expire_period = 86400,
        $ip_address = null
    ) {
        goto pG_Ld;
        yMBVK:
        $this->db->where(
            "\x69\x70\x5f\141\144\x64\x72\x65\x73\x73",
            $ip_address
        );
        goto V1frP;
        jlAVm:
        $old_attempts_expire_period = max(
            $old_attempts_expire_period,
            $this->config->item(
                "\154\157\x63\153\157\x75\164\137\x74\151\x6d\145",
                "\151\157\x6e\137\141\165\164\150"
            )
        );
        goto UfjeY;
        V1frP:
        VSrzk:
        goto Yw4wV;
        li5TH:
        return false;
        goto QzR7N;
        h_BpS:
        Oqt34:
        goto li5TH;
        Yw4wV:
        $this->db->or_where(
            "\x74\151\x6d\145\40\x3c",
            time() - $old_attempts_expire_period,
            false
        );
        goto ooUw_;
        I0Jk9:
        if (isset($ip_address)) {
            goto zY24z;
        }
        goto NUzUf;
        ZHgj4:
        zY24z:
        goto yMBVK;
        ooUw_:
        return $this->db->delete(
            $this->tables[
                "\x6c\x6f\x67\151\x6e\x5f\x61\x74\164\145\155\160\x74\x73"
            ]
        );
        goto h_BpS;
        gMRAj:
        if (
            !$this->config->item(
                "\x74\x72\141\x63\x6b\x5f\x6c\x6f\147\151\x6e\x5f\x69\160\137\x61\144\144\x72\x65\x73\x73",
                "\x69\157\x6e\x5f\141\x75\x74\x68"
            )
        ) {
            goto VSrzk;
        }
        goto I0Jk9;
        pG_Ld:
        if (
            !$this->config->item(
                "\164\162\141\143\x6b\137\x6c\x6f\147\151\156\137\x61\164\x74\145\155\x70\164\163",
                "\151\x6f\x6e\x5f\x61\165\x74\x68"
            )
        ) {
            goto Oqt34;
        }
        goto jlAVm;
        NUzUf:
        $ip_address = $this->input->ip_address();
        goto ZHgj4;
        UfjeY:
        $this->db->where("\154\x6f\x67\151\156", $identity);
        goto gMRAj;
        QzR7N:
    }
    public function limit($limit)
    {
        goto l7Q0v;
        TfNC5:
        return $this;
        goto U2Bof;
        l7Q0v:
        $this->trigger_events("\x6c\151\155\x69\164");
        goto voP9r;
        voP9r:
        $this->_ion_limit = $limit;
        goto TfNC5;
        U2Bof:
    }
    public function offset($offset)
    {
        goto p51oi;
        PNv1_:
        $this->_ion_offset = $offset;
        goto SdcWx;
        SdcWx:
        return $this;
        goto obL_z;
        p51oi:
        $this->trigger_events("\157\x66\146\x73\145\x74");
        goto PNv1_;
        obL_z:
    }
    public function where($where, $value = null)
    {
        goto Y7LG5;
        Y7LG5:
        $this->trigger_events("\x77\x68\x65\162\145");
        goto oJOgx;
        oJOgx:
        if (is_array($where)) {
            goto DDrIk;
        }
        goto z7Mj_;
        z7Mj_:
        $where = [$where => $value];
        goto u_GfG;
        u_GfG:
        DDrIk:
        goto PwUDT;
        PwUDT:
        array_push($this->_ion_where, $where);
        goto iyPmw;
        iyPmw:
        return $this;
        goto yuZ8q;
        yuZ8q:
    }
    public function like($like, $value = null, $position = "\x62\157\x74\150")
    {
        goto aoM3V;
        aoM3V:
        $this->trigger_events("\154\x69\x6b\x65");
        goto ikqLI;
        ikqLI:
        array_push($this->_ion_like, [
            "\x6c\151\x6b\145" => $like,
            "\166\141\154\x75\145" => $value,
            "\x70\x6f\163\151\x74\x69\x6f\x6e" => $position,
        ]);
        goto S8yt9;
        S8yt9:
        return $this;
        goto M3Ssn;
        M3Ssn:
    }
    public function select($select)
    {
        goto dU7E4;
        dU7E4:
        $this->trigger_events("\163\145\154\x65\143\164");
        goto QzicS;
        KEm5M:
        return $this;
        goto N5_7F;
        QzicS:
        $this->_ion_select[] = $select;
        goto KEm5M;
        N5_7F:
    }
    public function order_by($by, $order = "\144\x65\x73\x63")
    {
        goto ONkOl;
        rpcQi:
        $this->_ion_order = $order;
        goto FlEeO;
        FlEeO:
        return $this;
        goto tKvre;
        dw9jM:
        $this->_ion_order_by = $by;
        goto rpcQi;
        ONkOl:
        $this->trigger_events("\x6f\162\x64\x65\162\x5f\142\x79");
        goto dw9jM;
        tKvre:
    }
    public function row()
    {
        goto MAP9A;
        WGixa:
        $row = $this->response->row();
        goto nGuDj;
        MAP9A:
        $this->trigger_events("\162\157\167");
        goto WGixa;
        nGuDj:
        return $row;
        goto jL9gG;
        jL9gG:
    }
    public function row_array()
    {
        goto nw90y;
        ncatd:
        return $row;
        goto g1Mma;
        nw90y:
        $this->trigger_events([
            "\162\x6f\167",
            "\x72\x6f\167\x5f\141\162\162\141\x79",
        ]);
        goto kfAiM;
        kfAiM:
        $row = $this->response->row_array();
        goto ncatd;
        g1Mma:
    }
    public function result()
    {
        goto gtf1L;
        ruU6H:
        $result = $this->response->result();
        goto BpD29;
        BpD29:
        return $result;
        goto NBMr_;
        gtf1L:
        $this->trigger_events("\162\x65\x73\165\x6c\x74");
        goto ruU6H;
        NBMr_:
    }
    public function result_array()
    {
        goto c8TW6;
        vAV4g:
        return $result;
        goto joqBF;
        c8TW6:
        $this->trigger_events([
            "\162\x65\163\165\154\x74",
            "\162\145\163\165\x6c\164\137\x61\162\162\141\171",
        ]);
        goto i0ccT;
        i0ccT:
        $result = $this->response->result_array();
        goto vAV4g;
        joqBF:
    }
    public function num_rows()
    {
        goto NWEzy;
        NWEzy:
        $this->trigger_events(["\x6e\165\155\x5f\x72\157\x77\163"]);
        goto h3QOO;
        Hi275:
        return $result;
        goto DSjIN;
        h3QOO:
        $result = $this->response->num_rows();
        goto Hi275;
        DSjIN:
    }
    public function users($groups = null)
    {
        goto Y364V;
        JyBQr:
        $this->response = $this->db->get($this->tables["\165\163\x65\x72\x73"]);
        goto j7Fhj;
        HNC9b:
        $this->db->join(
            $this->tables["\165\163\x65\162\x73\137\x67\162\x6f\165\x70\x73"],
            $this->tables["\165\163\x65\162\x73\137\x67\x72\157\x75\160\163"] .
                "\56" .
                $this->join["\x75\x73\x65\162\163"] .
                "\x3d" .
                $this->tables["\x75\163\145\x72\163"] .
                "\56\x69\x64",
            "\151\x6e\156\x65\162"
        );
        goto joXMx;
        Bhd1N:
        VUmJa:
        goto audrP;
        FrRwo:
        $this->_ion_select = [];
        goto MMPtm;
        klhcP:
        $this->_ion_order = null;
        goto CJgmh;
        ZhK_z:
        if (empty($group_names)) {
            goto VUmJa;
        }
        goto rG15t;
        klmzT:
        $this->_ion_limit = null;
        goto WJ_y0;
        FCdpX:
        $this->db->limit($this->_ion_limit);
        goto klmzT;
        u6Y6S:
        $this->_ion_like = [];
        goto A61It;
        CJgmh:
        $this->_ion_order_by = null;
        goto C7ydp;
        ULdB6:
        if (!(isset($this->_ion_order_by) && isset($this->_ion_order))) {
            goto bZAwI;
        }
        goto hi4Zc;
        aBMOT:
        $group_ids = [];
        goto GYvoo;
        UAdad:
        $this->_ion_limit = null;
        goto A0FcU;
        vKGHg:
        if (!isset($groups)) {
            goto Jnp6P;
        }
        goto G6S3j;
        PDxss:
        goto BryVU;
        goto BB0Jn;
        vwL9O:
        Jnp6P:
        goto pKLg7;
        GCssq:
        foreach ($this->_ion_select as $select) {
            $this->db->select($select);
            PtzjD:
        }
        goto Al0wR;
        BB0Jn:
        XvqFr:
        goto LekAI;
        rG15t:
        $this->db->join(
            $this->tables["\147\162\157\165\160\163"],
            $this->tables["\x75\x73\x65\162\163\x5f\x67\x72\x6f\165\x70\x73"] .
                "\x2e" .
                $this->join["\147\x72\157\165\160\x73"] .
                "\x20\x3d\40" .
                $this->tables["\x67\x72\x6f\x75\160\163"] .
                "\56\x69\x64",
            "\151\x6e\156\x65\x72"
        );
        goto NAmj2;
        kD31c:
        BryVU:
        goto ULdB6;
        hi4Zc:
        $this->db->order_by($this->_ion_order_by, $this->_ion_order);
        goto klhcP;
        PSfaS:
        Z81cZ:
        goto HQcyz;
        MMPtm:
        z8MVq:
        goto vKGHg;
        E1lET:
        dKFtt:
        goto u6Y6S;
        j7Fhj:
        return $this;
        goto bey_b;
        okqFW:
        XTalR:
        goto vj22b;
        G6S3j:
        if (is_array($groups)) {
            goto XTalR;
        }
        goto YGpSh;
        ZkKXm:
        $this->db->{$or_where_in}(
            $this->tables["\165\163\145\162\163\x5f\x67\162\157\x75\x70\163"] .
                "\x2e" .
                $this->join["\147\x72\x6f\165\x70\163"],
            $group_ids
        );
        goto FD3TC;
        n4IXz:
        foreach ($this->_ion_like as $like) {
            $this->db->or_like(
                $like["\x6c\x69\x6b\145"],
                $like["\166\141\x6c\165\145"],
                $like["\160\157\x73\x69\164\151\x6f\x6e"]
            );
            MKdTg:
        }
        goto E1lET;
        g5ved:
        $or_where_in =
            !empty($group_ids) && !empty($group_names)
                ? "\157\162\137\x77\x68\x65\x72\x65\x5f\x69\x6e"
                : "\167\x68\x65\162\145\x5f\151\156";
        goto ZhK_z;
        YGpSh:
        $groups = [$groups];
        goto okqFW;
        audrP:
        if (empty($group_ids)) {
            goto mIWQy;
        }
        goto ZkKXm;
        zITMt:
        if (!isset($this->_ion_limit)) {
            goto EFi4J;
        }
        goto FCdpX;
        ThQzb:
        Hz1nd:
        goto OatyK;
        blNmN:
        goto z8MVq;
        goto zjG0U;
        A61It:
        OwJfU:
        goto fPOrw;
        gm9BX:
        if (!(isset($this->_ion_where) && !empty($this->_ion_where))) {
            goto Z81cZ;
        }
        goto GUkPQ;
        vj22b:
        if (!(isset($groups) && !empty($groups))) {
            goto yzhgh;
        }
        goto X_z1X;
        qdYQz:
        if (isset($this->_ion_select) && !empty($this->_ion_select)) {
            goto khLv9;
        }
        goto Lment;
        HQcyz:
        if (!(isset($this->_ion_like) && !empty($this->_ion_like))) {
            goto OwJfU;
        }
        goto n4IXz;
        hrPOy:
        foreach ($groups as $group) {
            goto vZoER;
            gZa_H:
            goto L7pzO;
            goto FGv9o;
            FGv9o:
            IAL3i:
            goto KmVxF;
            fQs7n:
            L7pzO:
            goto K99Ox;
            KmVxF:
            $group_ids[] = $group;
            goto fQs7n;
            K99Ox:
            WH80D:
            goto znddm;
            vZoER:
            if (is_numeric($group)) {
                goto IAL3i;
            }
            goto iBEqb;
            iBEqb:
            $group_names[] = $group;
            goto gZa_H;
            znddm:
        }
        goto K_D13;
        pKLg7:
        $this->trigger_events("\145\x78\164\x72\141\137\167\x68\x65\162\145");
        goto gm9BX;
        Al0wR:
        n10j2:
        goto FrRwo;
        GYvoo:
        $group_names = [];
        goto hrPOy;
        Y364V:
        $this->trigger_events("\x75\x73\x65\x72\163");
        goto qdYQz;
        fPOrw:
        if (isset($this->_ion_limit) && isset($this->_ion_offset)) {
            goto XvqFr;
        }
        goto zITMt;
        WJ_y0:
        EFi4J:
        goto PDxss;
        zjG0U:
        khLv9:
        goto GCssq;
        X_z1X:
        $this->db->distinct();
        goto HNC9b;
        LekAI:
        $this->db->limit($this->_ion_limit, $this->_ion_offset);
        goto UAdad;
        OatyK:
        $this->_ion_where = [];
        goto PSfaS;
        joXMx:
        yzhgh:
        goto aBMOT;
        GUkPQ:
        foreach ($this->_ion_where as $where) {
            $this->db->where($where);
            sNeO_:
        }
        goto ThQzb;
        FD3TC:
        mIWQy:
        goto vwL9O;
        K_D13:
        uy_4i:
        goto g5ved;
        Lment:
        $this->db->select([
            $this->tables["\x75\x73\x65\162\x73"] . "\x2e\52",
            $this->tables["\x75\163\x65\x72\x73"] .
            "\x2e\x69\x64\x20\x61\x73\40\x69\x64",
            $this->tables["\x75\x73\145\162\x73"] .
            "\x2e\151\x64\x20\141\163\40\x75\x73\145\x72\x5f\x69\x64",
        ]);
        goto blNmN;
        A0FcU:
        $this->_ion_offset = null;
        goto kD31c;
        NAmj2:
        $this->db->where_in(
            $this->tables["\147\162\157\165\160\x73"] . "\56\x6e\141\155\145",
            $group_names
        );
        goto Bhd1N;
        C7ydp:
        bZAwI:
        goto JyBQr;
        bey_b:
    }
    public function user($id = null)
    {
        goto kpGOu;
        rx4cz:
        $this->users();
        goto k0oIq;
        ROSfA:
        $this->where(
            $this->tables["\x75\163\145\162\163"] . "\56\x69\144",
            $id
        );
        goto rx4cz;
        kpGOu:
        $this->trigger_events("\165\x73\145\162");
        goto fNB5k;
        UPIJP:
        $this->limit(1);
        goto EDXtE;
        fNB5k:
        $id = isset($id)
            ? $id
            : $this->session->userdata("\165\163\145\162\137\x69\x64");
        goto UPIJP;
        k0oIq:
        return $this;
        goto aso27;
        EDXtE:
        $this->order_by(
            $this->tables["\x75\163\145\162\x73"] . "\56\151\144",
            "\x64\145\163\143"
        );
        goto ROSfA;
        aso27:
    }
    public function get_users_groups($id = false)
    {
        goto Rz7ox;
        Rz7ox:
        $this->trigger_events(
            "\x67\x65\x74\x5f\x75\163\x65\x72\x73\x5f\x67\162\x6f\x75\x70"
        );
        goto ieINE;
        Jwtsu:
        return $this->db
            ->select(
                $this->tables[
                    "\165\x73\145\x72\163\x5f\147\162\157\x75\x70\163"
                ] .
                    "\56" .
                    $this->join["\147\x72\157\x75\160\163"] .
                    "\x20\141\x73\40\x69\144\54\x20" .
                    $this->tables["\147\162\157\x75\160\x73"] .
                    "\56\x6e\141\x6d\145\x2c\40" .
                    $this->tables["\147\x72\157\x75\160\163"] .
                    "\56\x64\x65\x73\x63\162\151\x70\164\151\x6f\x6e"
            )
            ->where(
                $this->tables[
                    "\x75\163\145\x72\163\x5f\x67\162\157\165\160\163"
                ] .
                    "\56" .
                    $this->join["\165\163\x65\x72\x73"],
                $id
            )
            ->join(
                $this->tables["\147\x72\x6f\165\160\x73"],
                $this->tables[
                    "\165\163\x65\162\163\137\x67\162\157\165\160\x73"
                ] .
                    "\56" .
                    $this->join["\147\x72\x6f\x75\160\163"] .
                    "\75" .
                    $this->tables["\x67\x72\157\165\x70\x73"] .
                    "\56\x69\x64"
            )
            ->get(
                $this->tables[
                    "\165\x73\x65\x72\163\137\x67\x72\x6f\165\160\163"
                ]
            );
        goto BsyvA;
        ieINE:
        $id || ($id = $this->session->userdata("\x75\163\145\162\137\x69\144"));
        goto Jwtsu;
        BsyvA:
    }
    public function in_group($check_group, $id = false, $check_all = false)
    {
        goto Sw7Tq;
        h1aSH:
        return $check_all;
        goto eKMGW;
        eClR1:
        $id || ($id = $this->session->userdata("\165\163\145\x72\137\151\x64"));
        goto UNUMI;
        dympe:
        uC1yp:
        goto AB4vd;
        MIe5w:
        goto nxQ0l;
        goto RwQHg;
        kJTwM:
        A1RVi:
        goto h1aSH;
        IrFoA:
        eMKdI:
        goto c4_RA;
        huZK6:
        foreach ($users_groups as $group) {
            $groups_array[$group->id] = $group->name;
            Q8X2p:
        }
        goto IrFoA;
        BhnFg:
        $groups_array = $this->_cache_user_in_group[$id];
        goto Jc0yw;
        VFFHn:
        $check_group = [$check_group];
        goto dympe;
        diAdp:
        $groups_array = [];
        goto huZK6;
        Fnx2C:
        foreach ($check_group as $key => $value) {
            goto nlfji;
            dxGGI:
            uy8z0:
            goto AtZ71;
            AtZ71:
            XTieh:
            goto S7s9I;
            NdrID:
            return !$check_all;
            goto dxGGI;
            nlfji:
            $groups = is_numeric($value)
                ? array_keys($groups_array)
                : $groups_array;
            goto HuoWo;
            HuoWo:
            if (!(in_array($value, $groups) xor $check_all)) {
                goto uy8z0;
            }
            goto NdrID;
            S7s9I:
        }
        goto kJTwM;
        AB4vd:
        if (isset($this->_cache_user_in_group[$id])) {
            goto JooCe;
        }
        goto pkbvL;
        Sw7Tq:
        $this->trigger_events("\x69\156\137\147\x72\x6f\165\x70");
        goto eClR1;
        c4_RA:
        $this->_cache_user_in_group[$id] = $groups_array;
        goto MIe5w;
        UNUMI:
        if (is_array($check_group)) {
            goto uC1yp;
        }
        goto VFFHn;
        pkbvL:
        $users_groups = $this->get_users_groups($id)->result();
        goto diAdp;
        RwQHg:
        JooCe:
        goto BhnFg;
        Jc0yw:
        nxQ0l:
        goto Fnx2C;
        eKMGW:
    }
    public function add_to_group($group_ids, $user_id = false)
    {
        goto vgnE5;
        P349a:
        $group_ids = [$group_ids];
        goto J7QQ4;
        vgnE5:
        $this->trigger_events(
            "\x61\x64\144\x5f\164\x6f\137\147\162\157\165\x70"
        );
        goto kSbjV;
        kSbjV:
        $user_id ||
            ($user_id = $this->session->userdata(
                "\x75\x73\x65\162\x5f\151\144"
            ));
        goto OMNWX;
        Cbyfw:
        dBwBB:
        goto OL7Zo;
        J7QQ4:
        uQcAz:
        goto nFpV9;
        OL7Zo:
        return $return;
        goto iLzXX;
        OMNWX:
        if (is_array($group_ids)) {
            goto uQcAz;
        }
        goto P349a;
        DqNw1:
        foreach ($group_ids as $group_id) {
            goto hwujH;
            Gdoda:
            $return++;
            goto T06yO;
            X9PS_:
            $group = $this->group($group_id)->result();
            goto Nmp3a;
            LyAiA:
            $this->_cache_user_in_group[$user_id][$group_id] = $group_name;
            goto Gdoda;
            Nmp3a:
            $group_name = $group[0]->name;
            goto tmB1B;
            YWYAL:
            if (isset($this->_cache_groups[$group_id])) {
                goto u5EJk;
            }
            goto X9PS_;
            tmB1B:
            $this->_cache_groups[$group_id] = $group_name;
            goto b3Ir5;
            T06yO:
            C93Se:
            goto Dl4Au;
            aeEvz:
            vZySV:
            goto LyAiA;
            hwujH:
            if (
                !$this->db->insert(
                    $this->tables[
                        "\165\163\145\162\163\x5f\147\x72\157\x75\160\163"
                    ],
                    [
                        $this->join[
                            "\x67\x72\x6f\x75\160\163"
                        ] => (float) $group_id,
                        $this->join["\x75\163\145\162\163"] => (float) $user_id,
                    ]
                )
            ) {
                goto C93Se;
            }
            goto YWYAL;
            b3Ir5:
            goto vZySV;
            goto W_bq1;
            nWNrp:
            $group_name = $this->_cache_groups[$group_id];
            goto aeEvz;
            Dl4Au:
            MRlb2:
            goto hECuh;
            W_bq1:
            u5EJk:
            goto nWNrp;
            hECuh:
        }
        goto Cbyfw;
        nFpV9:
        $return = 0;
        goto DqNw1;
        iLzXX:
    }
    public function remove_from_group($group_ids = false, $user_id = false)
    {
        goto nJZ2k;
        kMl1e:
        if (
            !($return = $this->db->delete(
                $this->tables[
                    "\165\163\145\x72\163\x5f\147\x72\157\x75\x70\x73"
                ],
                [$this->join["\x75\x73\145\162\x73"] => (float) $user_id]
            ))
        ) {
            goto lSH9I;
        }
        goto SeYcJ;
        Sagrp:
        goto Gg_Yr;
        goto ytXZB;
        SeYcJ:
        $this->_cache_user_in_group[$user_id] = [];
        goto LBdQU;
        nC4LH:
        if (is_array($group_ids)) {
            goto WhfRP;
        }
        goto PK087;
        RCubN:
        if (!empty($user_id)) {
            goto cbDYY;
        }
        goto MR_0r;
        ERVC1:
        return $return;
        goto KOpw3;
        PK087:
        $group_ids = [$group_ids];
        goto Vaxfr;
        ytXZB:
        eVeOo:
        goto nC4LH;
        RzCjf:
        mKoxO:
        goto CL7e1;
        t1VOQ:
        cbDYY:
        goto Ty8V7;
        BNUpN:
        Gg_Yr:
        goto ERVC1;
        Vaxfr:
        WhfRP:
        goto o_43t;
        Ty8V7:
        if (!empty($group_ids)) {
            goto eVeOo;
        }
        goto kMl1e;
        LBdQU:
        lSH9I:
        goto Sagrp;
        CL7e1:
        $return = true;
        goto BNUpN;
        MR_0r:
        return false;
        goto t1VOQ;
        nJZ2k:
        $this->trigger_events(
            "\x72\x65\x6d\x6f\x76\145\137\x66\x72\x6f\x6d\137\147\x72\x6f\165\160"
        );
        goto RCubN;
        o_43t:
        foreach ($group_ids as $group_id) {
            goto WvExf;
            WvExf:
            $this->db->delete(
                $this->tables[
                    "\165\163\x65\x72\163\x5f\x67\162\x6f\165\x70\163"
                ],
                [
                    $this->join[
                        "\147\x72\x6f\165\x70\x73"
                    ] => (float) $group_id,
                    $this->join["\x75\x73\145\162\x73"] => (float) $user_id,
                ]
            );
            goto SyfQg;
            n4r8J:
            GGsJJ:
            goto DGagB;
            YiMKN:
            QZER3:
            goto n4r8J;
            Snw0K:
            unset($this->_cache_user_in_group[$user_id][$group_id]);
            goto YiMKN;
            SyfQg:
            if (
                !(
                    isset($this->_cache_user_in_group[$user_id]) &&
                    isset($this->_cache_user_in_group[$user_id][$group_id])
                )
            ) {
                goto QZER3;
            }
            goto Snw0K;
            DGagB:
        }
        goto RzCjf;
        KOpw3:
    }
    public function groups()
    {
        goto WcJbc;
        lsp_q:
        $this->db->limit($this->_ion_limit);
        goto QSFF3;
        sjX1l:
        if (isset($this->_ion_limit) && isset($this->_ion_offset)) {
            goto Or8f1;
        }
        goto BL9vs;
        o_VJ7:
        Or8f1:
        goto ZM_K0;
        ZM_K0:
        $this->db->limit($this->_ion_limit, $this->_ion_offset);
        goto fWGfR;
        iiCM6:
        if (!(isset($this->_ion_where) && !empty($this->_ion_where))) {
            goto KU4cZ;
        }
        goto Pj3je;
        BL9vs:
        if (!isset($this->_ion_limit)) {
            goto m3aPO;
        }
        goto lsp_q;
        fWGfR:
        $this->_ion_limit = null;
        goto HPjHY;
        Qi3JL:
        Kvwc7:
        goto ByLli;
        KKrLH:
        $this->response = $this->db->get(
            $this->tables["\147\162\x6f\x75\160\163"]
        );
        goto cGKXu;
        SLecO:
        zdgen:
        goto KKrLH;
        WcJbc:
        $this->trigger_events("\147\162\x6f\165\x70\163");
        goto iiCM6;
        I76xG:
        m3aPO:
        goto OZTBS;
        fN8uW:
        $this->_ion_where = [];
        goto x6uvc;
        OZTBS:
        goto Kvwc7;
        goto o_VJ7;
        S8U07:
        $this->db->order_by($this->_ion_order_by, $this->_ion_order);
        goto SLecO;
        cGKXu:
        return $this;
        goto Oj1MP;
        Pj3je:
        foreach ($this->_ion_where as $where) {
            $this->db->where($where);
            rRIgJ:
        }
        goto gTx7U;
        HPjHY:
        $this->_ion_offset = null;
        goto Qi3JL;
        ByLli:
        if (!(isset($this->_ion_order_by) && isset($this->_ion_order))) {
            goto zdgen;
        }
        goto S8U07;
        x6uvc:
        KU4cZ:
        goto sjX1l;
        QSFF3:
        $this->_ion_limit = null;
        goto I76xG;
        gTx7U:
        uoIyn:
        goto fN8uW;
        Oj1MP:
    }
    public function group($id = null)
    {
        goto dmBa6;
        dmBa6:
        $this->trigger_events("\x67\x72\157\x75\x70");
        goto aoexM;
        oJXG7:
        WOaMR:
        goto t845Q;
        aoexM:
        if (!isset($id)) {
            goto WOaMR;
        }
        goto kLleZ;
        D5dpP:
        return $this->groups();
        goto sfzdj;
        t845Q:
        $this->limit(1);
        goto UrL6I;
        UrL6I:
        $this->order_by("\151\144", "\x64\145\163\143");
        goto D5dpP;
        kLleZ:
        $this->where(
            $this->tables["\x67\x72\157\x75\x70\163"] . "\x2e\x69\x64",
            $id
        );
        goto oJXG7;
        sfzdj:
    }
    public function update($id, array $data)
    {
        goto u8x3k;
        fcOcq:
        if (!($data["\160\x61\163\x73\167\157\162\x64"] === false)) {
            goto kkLOu;
        }
        goto ty7qG;
        l25kL:
        $this->trigger_events([
            "\160\157\x73\x74\x5f\165\160\144\141\x74\145\x5f\x75\x73\145\162",
            "\160\157\x73\164\x5f\x75\160\144\141\164\x65\137\x75\x73\x65\x72\x5f\x75\x6e\x73\165\x63\x63\145\x73\163\146\165\154",
        ]);
        goto nHUWP;
        lu4ow:
        $this->trigger_events("\x65\x78\x74\x72\141\x5f\x77\150\145\162\145");
        goto pogkY;
        opwjQ:
        fWrCn:
        goto lu4ow;
        p92PT:
        if (!empty($data["\160\x61\163\163\x77\157\162\144"])) {
            goto lwPgV;
        }
        goto bQKPL;
        MhwUg:
        $this->db->trans_begin();
        goto fvWvb;
        jNPI5:
        lwPgV:
        goto nQdZ4;
        Rfl7M:
        IURtw:
        goto opwjQ;
        y_0Ok:
        if (!($this->db->trans_status() === false)) {
            goto VO5_a;
        }
        goto qf1uX;
        iwXWN:
        return false;
        goto QkQ1f;
        JvBAe:
        kkLOu:
        goto RO8WE;
        FsLiq:
        if (
            !(
                array_key_exists($this->identity_column, $data) ||
                array_key_exists("\x70\141\x73\163\x77\157\x72\x64", $data) ||
                array_key_exists("\x65\x6d\x61\151\x6c", $data)
            )
        ) {
            goto fWrCn;
        }
        goto BOQgp;
        wN963:
        $this->db->trans_commit();
        goto e84d_;
        v5E_3:
        $this->set_error(
            "\165\160\x64\x61\164\x65\137\165\156\163\x75\x63\x63\145\x73\x73\146\165\x6c"
        );
        goto iwXWN;
        qf1uX:
        $this->db->trans_rollback();
        goto qrSAe;
        Hbvp3:
        $user = $this->user($id)->row();
        goto MhwUg;
        QkQ1f:
        m1ioW:
        goto emyq8;
        fvWvb:
        if (
            !(
                array_key_exists($this->identity_column, $data) &&
                $this->identity_check($data[$this->identity_column]) &&
                $user->{$this->identity_column} !==
                    $data[$this->identity_column]
            )
        ) {
            goto m1ioW;
        }
        goto L5x7h;
        nQdZ4:
        $data["\x70\141\163\x73\x77\x6f\162\x64"] = $this->hash_password(
            $data["\160\141\x73\163\167\x6f\162\144"],
            $user->{$this->identity_column}
        );
        goto fcOcq;
        emyq8:
        $data = $this->_filter_data(
            $this->tables["\165\163\x65\x72\x73"],
            $data
        );
        goto FsLiq;
        u8x3k:
        $this->trigger_events(
            "\x70\162\145\137\x75\160\144\x61\164\145\137\165\163\x65\162"
        );
        goto Hbvp3;
        BOQgp:
        if (!array_key_exists("\x70\x61\163\x73\x77\x6f\162\x64", $data)) {
            goto IURtw;
        }
        goto p92PT;
        iVrM2:
        VO5_a:
        goto wN963;
        R4CAp:
        $this->trigger_events([
            "\x70\x6f\163\x74\137\x75\160\144\x61\164\x65\137\165\163\x65\x72",
            "\x70\157\163\164\137\165\x70\144\x61\164\145\x5f\x75\163\x65\162\x5f\165\x6e\163\x75\x63\x63\145\163\x73\146\x75\x6c",
        ]);
        goto v5E_3;
        MrHhS:
        $this->set_message(
            "\x75\x70\144\x61\x74\x65\137\x73\x75\x63\x63\145\x73\163\146\x75\x6c"
        );
        goto kp0Wc;
        bQKPL:
        unset($data["\160\141\x73\x73\167\157\162\144"]);
        goto EmAUl;
        kp0Wc:
        return true;
        goto C_zbK;
        HQjMa:
        $this->set_error(
            "\x75\x70\x64\141\164\145\137\165\x6e\x73\x75\x63\143\x65\x73\163\x66\x75\154"
        );
        goto g86G2;
        bkY4f:
        $this->set_error(
            "\x61\143\x63\x6f\x75\x6e\164\137\x63\162\145\x61\x74\151\157\x6e\137\x64\165\160\x6c\151\143\x61\x74\x65\x5f\151\x64\x65\x6e\164\151\x74\171"
        );
        goto R4CAp;
        pogkY:
        $this->db->update($this->tables["\x75\163\x65\x72\x73"], $data, [
            "\151\144" => $user->id,
        ]);
        goto y_0Ok;
        nHUWP:
        $this->set_error(
            "\165\160\x64\141\x74\145\x5f\165\x6e\163\x75\143\143\x65\163\163\146\x75\x6c"
        );
        goto kYQjU;
        qrSAe:
        $this->trigger_events([
            "\x70\x6f\163\164\x5f\x75\x70\144\x61\164\145\137\x75\x73\x65\162",
            "\160\157\x73\x74\x5f\x75\160\x64\141\x74\145\137\165\163\x65\x72\137\x75\x6e\x73\x75\x63\x63\145\163\163\146\x75\x6c",
        ]);
        goto HQjMa;
        kYQjU:
        return false;
        goto JvBAe;
        ty7qG:
        $this->db->trans_rollback();
        goto l25kL;
        e84d_:
        $this->trigger_events([
            "\160\x6f\x73\x74\x5f\165\x70\x64\x61\164\x65\137\x75\x73\145\162",
            "\160\x6f\163\164\137\x75\x70\x64\141\164\145\x5f\x75\x73\145\x72\137\163\x75\x63\143\x65\x73\163\146\165\x6c",
        ]);
        goto MrHhS;
        L5x7h:
        $this->db->trans_rollback();
        goto bkY4f;
        RO8WE:
        AX6sn:
        goto Rfl7M;
        g86G2:
        return false;
        goto iVrM2;
        EmAUl:
        goto AX6sn;
        goto jNPI5;
        C_zbK:
    }
    public function delete_user($id)
    {
        goto NQGfJ;
        gNt3k:
        gLuRf:
        goto Tc2OT;
        Tc2OT:
        $this->db->trans_commit();
        goto OYyaw;
        ErJnY:
        $this->set_error(
            "\144\145\x6c\x65\164\145\137\x75\x6e\163\165\143\x63\x65\163\163\146\165\x6c"
        );
        goto dYoMY;
        DFumR:
        return true;
        goto RuiYY;
        cv6yZ:
        $this->trigger_events([
            "\160\157\x73\164\x5f\144\145\154\145\164\x65\x5f\165\163\x65\162",
            "\160\157\163\x74\x5f\144\x65\x6c\145\164\x65\x5f\165\x73\x65\x72\x5f\165\x6e\x73\165\x63\143\145\x73\x73\146\x75\x6c",
        ]);
        goto ErJnY;
        xNcO4:
        $this->remove_from_group(null, $id);
        goto AHGT6;
        Tt36I:
        $this->set_message(
            "\144\x65\x6c\145\164\145\137\x73\x75\143\143\145\163\x73\x66\165\x6c"
        );
        goto DFumR;
        Ie2dp:
        $this->db->trans_rollback();
        goto cv6yZ;
        NQGfJ:
        $this->trigger_events(
            "\160\162\145\x5f\x64\145\x6c\x65\164\x65\137\165\163\x65\x72"
        );
        goto a04Ls;
        OYyaw:
        $this->trigger_events([
            "\160\157\x73\164\137\x64\145\x6c\145\x74\145\x5f\165\163\145\x72",
            "\x70\157\x73\164\x5f\144\145\x6c\x65\164\145\137\165\163\x65\162\137\163\165\143\143\145\x73\x73\146\x75\154",
        ]);
        goto Tt36I;
        ZcpOG:
        if (!($this->db->trans_status() === false)) {
            goto gLuRf;
        }
        goto Ie2dp;
        a04Ls:
        $this->db->trans_begin();
        goto xNcO4;
        dYoMY:
        return false;
        goto gNt3k;
        AHGT6:
        $this->db->delete($this->tables["\165\163\x65\x72\x73"], [
            "\151\144" => $id,
        ]);
        goto ZcpOG;
        RuiYY:
    }
    public function update_last_login($id)
    {
        goto ERtPd;
        TVt_u:
        return $this->db->affected_rows() == 1;
        goto hi9my;
        LCuGc:
        $this->db->update(
            $this->tables["\x75\x73\145\x72\163"],
            ["\x6c\141\163\164\137\154\157\147\151\x6e" => time()],
            ["\x69\x64" => $id]
        );
        goto TVt_u;
        ERtPd:
        $this->trigger_events(
            "\x75\x70\144\x61\x74\145\137\x6c\141\x73\164\137\x6c\x6f\x67\x69\x6e"
        );
        goto Q3dtO;
        Q3dtO:
        $this->load->helper("\x64\x61\164\x65");
        goto k_XQT;
        k_XQT:
        $this->trigger_events("\145\170\164\162\141\137\x77\150\x65\x72\145");
        goto LCuGc;
        hi9my:
    }
    public function set_lang($lang = "\x65\x6e")
    {
        goto KEfrj;
        TvmBe:
        $expire = $this->config->item(
            "\x75\163\x65\x72\137\x65\170\x70\x69\x72\x65",
            "\x69\157\x6e\x5f\141\165\x74\150"
        );
        goto Wzndx;
        WB1a_:
        $expire = self::MAX_COOKIE_LIFETIME;
        goto rINs2;
        VtR8a:
        return true;
        goto GtYgJ;
        cKjHj:
        viDbY:
        goto WB1a_;
        Wzndx:
        goto lwwbB;
        goto cKjHj;
        A98LS:
        if (
            $this->config->item(
                "\x75\163\145\162\x5f\145\x78\x70\x69\162\145",
                "\x69\157\156\x5f\141\x75\164\x68"
            ) === 0
        ) {
            goto viDbY;
        }
        goto TvmBe;
        JtiwX:
        set_cookie([
            "\x6e\141\x6d\x65" => "\154\141\156\147\x5f\143\x6f\x64\x65",
            "\x76\141\x6c\x75\145" => $lang,
            "\x65\170\x70\151\x72\145" => $expire,
        ]);
        goto VtR8a;
        KEfrj:
        $this->trigger_events("\x73\x65\x74\137\154\x61\x6e\147");
        goto A98LS;
        rINs2:
        lwwbB:
        goto JtiwX;
        GtYgJ:
    }
    public function set_session($user)
    {
        goto fCSKw;
        a6M63:
        return true;
        goto zQMl8;
        Th8Hi:
        $this->trigger_events(
            "\x70\157\163\x74\x5f\163\x65\164\137\163\145\163\163\x69\x6f\x6e"
        );
        goto a6M63;
        fCSKw:
        $this->trigger_events(
            "\160\x72\x65\x5f\x73\145\x74\137\163\145\163\163\151\x6f\156"
        );
        goto pvVCR;
        f5AeU:
        $this->session->set_userdata($session_data);
        goto Th8Hi;
        pvVCR:
        $session_data = [
            "\x69\x64\145\156\164\151\164\171" =>
                $user->{$this->identity_column},
            $this->identity_column => $user->{$this->identity_column},
            "\145\155\x61\151\154" => $user->email,
            "\x75\163\x65\162\x5f\x69\x64" => $user->id,
            "\157\154\x64\x5f\x6c\141\163\x74\137\x6c\x6f\x67\151\156" =>
                $user->last_login,
            "\x6c\141\163\164\x5f\143\150\x65\x63\153" => time(),
        ];
        goto f5AeU;
        zQMl8:
    }
    public function remember_user($identity)
    {
        goto eEqmg;
        MGhcY:
        if ($identity) {
            goto i8zqk;
        }
        goto UU2o9;
        RuLYk:
        $this->trigger_events([
            "\x70\x6f\x73\x74\137\162\145\x6d\145\155\x62\145\x72\137\165\163\145\x72",
            "\162\145\x6d\x65\155\x62\x65\x72\x5f\x75\x73\x65\162\137\165\156\x73\x75\143\143\x65\x73\163\146\x75\x6c",
        ]);
        goto g77iO;
        G0C8J:
        JWNSF:
        goto BcusD;
        DX1sH:
        set_cookie([
            "\x6e\141\155\x65" => $this->config->item(
                "\162\145\x6d\145\x6d\x62\x65\x72\137\x63\157\x6f\153\x69\x65\137\x6e\141\155\145",
                "\x69\x6f\156\137\x61\x75\x74\150"
            ),
            "\166\141\154\165\145" => $token->user_code,
            "\x65\170\x70\x69\x72\145" => $expire,
        ]);
        goto Jdyg4;
        ucYz3:
        Vun7M:
        goto DX1sH;
        eEqmg:
        $this->trigger_events(
            "\160\162\x65\x5f\162\145\x6d\145\x6d\142\x65\x72\x5f\165\163\x65\162"
        );
        goto MGhcY;
        fnvc4:
        if (!($this->db->affected_rows() > -1)) {
            goto JWNSF;
        }
        goto xZYEJ;
        UU2o9:
        return false;
        goto nH5Vb;
        ymzPj:
        $expire = $this->config->item(
            "\x75\x73\145\x72\x5f\x65\x78\160\151\x72\145",
            "\151\157\156\137\x61\165\164\x68"
        );
        goto gx83f;
        g77iO:
        return false;
        goto f9akc;
        nH5Vb:
        i8zqk:
        goto VdY7N;
        BcusD:
        S1BeJ:
        goto RuLYk;
        VdY7N:
        $token = $this->_generate_selector_validator_couple();
        goto pyU5Q;
        JAZHz:
        XfPYb:
        goto M2dSf;
        M2dSf:
        $expire = self::MAX_COOKIE_LIFETIME;
        goto ucYz3;
        gx83f:
        goto Vun7M;
        goto JAZHz;
        xZYEJ:
        if (
            $this->config->item(
                "\165\x73\x65\x72\x5f\145\x78\x70\151\x72\x65",
                "\x69\157\156\x5f\x61\165\x74\150"
            ) === 0
        ) {
            goto XfPYb;
        }
        goto ymzPj;
        pyU5Q:
        if (!$token->validator_hashed) {
            goto S1BeJ;
        }
        goto mEYNI;
        mEYNI:
        $this->db->update(
            $this->tables["\165\163\x65\x72\163"],
            [
                "\x72\x65\155\145\x6d\142\x65\162\x5f\163\x65\x6c\145\143\x74\157\x72" =>
                    $token->selector,
                "\x72\x65\155\x65\155\142\145\x72\x5f\x63\157\144\145" =>
                    $token->validator_hashed,
            ],
            [$this->identity_column => $identity]
        );
        goto fnvc4;
        Jdyg4:
        $this->trigger_events([
            "\x70\157\163\164\137\x72\145\155\x65\x6d\x62\145\162\x5f\165\163\145\x72",
            "\162\145\155\x65\x6d\142\x65\x72\137\165\163\x65\162\137\163\x75\143\143\x65\163\x73\146\165\154",
        ]);
        goto HFXMo;
        HFXMo:
        return true;
        goto G0C8J;
        f9akc:
    }
    public function login_remembered_user()
    {
        goto hWI3X;
        j0aZF:
        l9YcC:
        goto kAmBt;
        FzLTM:
        g6q9r:
        goto YFqLX;
        f95FJ:
        $this->trigger_events([
            "\x70\157\163\x74\137\x6c\x6f\147\151\156\x5f\x72\145\x6d\145\x6d\x62\x65\x72\x65\x64\137\165\x73\x65\162",
            "\160\x6f\x73\164\x5f\x6c\x6f\147\x69\156\x5f\162\x65\x6d\145\x6d\142\x65\x72\x65\x64\137\165\163\x65\162\x5f\165\156\163\165\143\x63\x65\163\163\146\165\x6c",
        ]);
        goto boQFJ;
        oNE8b:
        return false;
        goto Tg682;
        vRm0A:
        $this->trigger_events("\145\x78\x74\162\x61\137\167\150\x65\x72\145");
        goto Kt4w_;
        boQFJ:
        return false;
        goto nlPc_;
        FMEVG:
        $this->clear_forgotten_password_code($identity);
        goto X4jXc;
        By3Kt:
        $this->update_last_login($user->id);
        goto tnae9;
        tnae9:
        $this->set_session($user);
        goto FMEVG;
        X4jXc:
        if (
            !$this->config->item(
                "\x75\163\x65\x72\137\x65\170\x74\145\x6e\144\x5f\x6f\156\137\x6c\157\147\151\x6e",
                "\151\x6f\156\x5f\x61\165\x74\x68"
            )
        ) {
            goto g6q9r;
        }
        goto o3eKn;
        o3eKn:
        $this->remember_user($identity);
        goto FzLTM;
        Tg682:
        oWNm3:
        goto vRm0A;
        kAmBt:
        delete_cookie(
            $this->config->item(
                "\x72\x65\x6d\145\155\x62\x65\162\x5f\x63\157\157\x6b\151\145\137\x6e\141\x6d\145",
                "\151\x6f\x6e\x5f\141\x75\x74\150"
            )
        );
        goto f95FJ;
        YFqLX:
        $this->session->sess_regenerate(false);
        goto fEy4X;
        BL1MQ:
        $user = $query->row();
        goto xmdut;
        h3sq1:
        $token = $this->_retrieve_selector_validator_couple($remember_cookie);
        goto lYBM3;
        vyZpO:
        return true;
        goto rjfWT;
        xmdut:
        $identity = $user->{$this->identity_column};
        goto waNEk;
        m7kvo:
        $this->trigger_events([
            "\160\x6f\163\164\137\x6c\157\147\x69\x6e\137\162\x65\155\x65\x6d\142\145\x72\x65\x64\x5f\165\x73\145\x72",
            "\x70\x6f\163\164\137\154\157\x67\x69\x6e\x5f\162\x65\x6d\x65\x6d\142\145\x72\145\x64\137\x75\x73\x65\x72\137\x75\156\163\165\143\143\145\163\x73\146\x75\x6c",
        ]);
        goto oNE8b;
        rjfWT:
        idMH6:
        goto j0aZF;
        rG26K:
        $remember_cookie = get_cookie(
            $this->config->item(
                "\162\x65\x6d\145\x6d\142\145\162\x5f\143\157\x6f\x6b\151\x65\137\156\x61\x6d\145",
                "\x69\157\156\137\141\165\164\x68"
            )
        );
        goto h3sq1;
        fEy4X:
        $this->trigger_events([
            "\x70\157\x73\x74\137\x6c\157\147\151\x6e\137\162\x65\x6d\x65\155\x62\145\162\145\144\137\x75\x73\145\x72",
            "\160\157\x73\x74\x5f\154\x6f\147\x69\156\137\162\145\155\145\155\142\x65\162\145\x64\137\x75\x73\x65\x72\137\x73\x75\x63\143\x65\163\163\x66\165\154",
        ]);
        goto vyZpO;
        lYBM3:
        if (!($token === false)) {
            goto oWNm3;
        }
        goto m7kvo;
        waNEk:
        if (
            !$this->verify_password(
                $token->validator,
                $user->remember_code,
                $identity
            )
        ) {
            goto idMH6;
        }
        goto By3Kt;
        qF581:
        if (!($query->num_rows() === 1)) {
            goto l9YcC;
        }
        goto BL1MQ;
        hWI3X:
        $this->trigger_events(
            "\x70\x72\x65\x5f\154\157\x67\x69\156\x5f\x72\145\155\x65\x6d\142\x65\x72\x65\144\137\165\163\145\x72"
        );
        goto rG26K;
        Kt4w_:
        $query = $this->db
            ->select(
                $this->identity_column .
                    "\54\x20\x69\144\54\40\x65\155\141\x69\x6c\54\x20\x72\x65\x6d\x65\x6d\142\x65\x72\137\x63\x6f\144\x65\54\40\x6c\x61\163\164\x5f\x6c\157\x67\151\156"
            )
            ->where(
                "\x72\x65\155\x65\x6d\142\145\x72\x5f\x73\x65\x6c\145\x63\x74\x6f\x72",
                $token->selector
            )
            ->where("\141\143\164\x69\x76\145", 1)
            ->limit(1)
            ->get($this->tables["\165\163\145\x72\163"]);
        goto qF581;
        nlPc_:
    }
    public function create_group(
        $group_name = false,
        $group_description = "",
        $additional_data = []
    ) {
        goto bdMNc;
        rn3E2:
        $this->set_error(
            "\147\x72\x6f\x75\x70\x5f\x61\x6c\x72\145\141\x64\171\137\x65\x78\151\x73\x74\163"
        );
        goto y6ftk;
        I7TFM:
        $group_id = $this->db->insert_id(
            $this->tables["\147\x72\x6f\x75\x70\163"] .
                "\137\151\144\x5f\x73\x65\x71"
        );
        goto NWA6g;
        u_mj0:
        $this->set_error(
            "\147\162\x6f\x75\x70\x5f\x6e\141\x6d\145\137\162\x65\x71\165\151\x72\x65\x64"
        );
        goto Kd2Q1;
        rp2h_:
        g8Iq8:
        goto vU0NJ;
        Kd2Q1:
        return false;
        goto RDoUk;
        RDoUk:
        HfG_s:
        goto QbRHd;
        zWnbg:
        $this->trigger_events(
            "\145\170\x74\x72\x61\x5f\x67\x72\x6f\165\x70\137\163\145\x74"
        );
        goto cZLJV;
        vU0NJ:
        $data = [
            "\156\141\155\x65" => $group_name,
            "\x64\145\x73\x63\162\151\160\164\151\157\x6e" => $group_description,
        ];
        goto VlE3k;
        QbRHd:
        $existing_group = $this->db
            ->get_where($this->tables["\x67\x72\x6f\x75\x70\x73"], [
                "\156\x61\155\x65" => $group_name,
            ])
            ->num_rows();
        goto j6YL9;
        y6ftk:
        return false;
        goto rp2h_;
        VlE3k:
        if (empty($additional_data)) {
            goto YvD4D;
        }
        goto auZfs;
        NWA6g:
        $this->set_message(
            "\x67\x72\157\165\160\x5f\143\x72\x65\x61\164\151\157\x6e\137\x73\165\x63\143\x65\163\163\146\x75\x6c"
        );
        goto D9j0U;
        cZLJV:
        $this->db->insert($this->tables["\x67\x72\157\165\x70\x73"], $data);
        goto I7TFM;
        auZfs:
        $data = array_merge(
            $this->_filter_data(
                $this->tables["\147\162\x6f\165\160\163"],
                $additional_data
            ),
            $data
        );
        goto epZID;
        j6YL9:
        if (!($existing_group !== 0)) {
            goto g8Iq8;
        }
        goto rn3E2;
        epZID:
        YvD4D:
        goto zWnbg;
        D9j0U:
        return $group_id;
        goto V2MyJ;
        bdMNc:
        if ($group_name) {
            goto HfG_s;
        }
        goto u_mj0;
        V2MyJ:
    }
    public function update_group(
        $group_id = false,
        $group_name = false,
        $additional_data = []
    ) {
        goto AL3LN;
        tXMNU:
        $data = array_merge(
            $this->_filter_data(
                $this->tables["\x67\x72\x6f\165\x70\x73"],
                $additional_data
            ),
            $data
        );
        goto SoLYP;
        SoLYP:
        e9CVL:
        goto k13rq;
        wwakJ:
        YAOjC:
        goto Ng_KO;
        sXFWj:
        if (empty($group_name)) {
            goto YAOjC;
        }
        goto Jkze0;
        Ng_KO:
        $group = $this->db
            ->get_where($this->tables["\147\x72\x6f\x75\x70\x73"], [
                "\x69\x64" => $group_id,
            ])
            ->row();
        goto nHcZ1;
        eRg1W:
        if (!(isset($existing_group->id) && $existing_group->id != $group_id)) {
            goto rDt_P;
        }
        goto LRf0H;
        WKlG8:
        $data["\156\141\x6d\145"] = $group_name;
        goto wwakJ;
        k13rq:
        $this->db->update($this->tables["\147\x72\157\x75\160\x73"], $data, [
            "\151\144" => $group_id,
        ]);
        goto jr7yN;
        lHtZL:
        return false;
        goto eVuiA;
        Jkze0:
        $existing_group = $this->db
            ->get_where($this->tables["\x67\162\157\165\x70\x73"], [
                "\156\141\x6d\145" => $group_name,
            ])
            ->row();
        goto eRg1W;
        AL3LN:
        if (!empty($group_id)) {
            goto T4iGt;
        }
        goto lHtZL;
        r2WBa:
        if (empty($additional_data)) {
            goto e9CVL;
        }
        goto tXMNU;
        LRf0H:
        $this->set_error(
            "\147\162\x6f\165\160\x5f\x61\x6c\162\145\x61\144\171\137\145\x78\151\163\x74\x73"
        );
        goto YvTgB;
        nHcZ1:
        if (
            !(
                $this->config->item(
                    "\141\144\155\151\x6e\137\x67\x72\157\x75\x70",
                    "\151\157\x6e\x5f\x61\165\164\150"
                ) === $group->name && $group_name !== $group->name
            )
        ) {
            goto Yt4rB;
        }
        goto anrbk;
        anrbk:
        $this->set_error(
            "\147\x72\157\165\x70\x5f\x6e\x61\155\145\x5f\141\144\x6d\151\156\x5f\x6e\157\164\137\141\154\x74\145\162"
        );
        goto x4AuM;
        Ivi7i:
        rDt_P:
        goto WKlG8;
        YvTgB:
        return false;
        goto Ivi7i;
        jr7yN:
        $this->set_message(
            "\x67\162\157\165\160\x5f\x75\x70\x64\x61\x74\145\137\163\x75\143\143\x65\x73\x73\146\165\x6c"
        );
        goto usGY3;
        eVuiA:
        T4iGt:
        goto iCjJV;
        jYGyx:
        Yt4rB:
        goto r2WBa;
        iCjJV:
        $data = [];
        goto sXFWj;
        x4AuM:
        return false;
        goto jYGyx;
        usGY3:
        return true;
        goto mjUTM;
        mjUTM:
    }
    public function delete_group($group_id = false)
    {
        goto KRFaE;
        rcO9m:
        $this->db->trans_commit();
        goto GuzJI;
        nouEk:
        $this->set_message(
            "\147\162\157\165\160\x5f\144\145\x6c\145\164\145\x5f\x73\x75\x63\143\x65\x73\x73\x66\x75\154"
        );
        goto KawT0;
        nk6K0:
        fVetW:
        goto rcO9m;
        jyqGT:
        $this->set_error(
            "\147\162\157\x75\160\x5f\x64\x65\x6c\145\164\x65\x5f\x75\156\163\165\143\x63\x65\163\163\x66\165\x6c"
        );
        goto mQCj3;
        kI2Cw:
        if (!($this->db->trans_status() === false)) {
            goto fVetW;
        }
        goto ukV4f;
        KNEed:
        IPRhu:
        goto ogxQ3;
        qnZEH:
        $this->db->trans_begin();
        goto ndqEm;
        ogxQ3:
        $this->trigger_events(
            "\160\162\145\x5f\x64\145\x6c\x65\164\x65\x5f\x67\162\157\x75\x70"
        );
        goto qnZEH;
        vDSSS:
        $this->trigger_events([
            "\160\157\x73\x74\x5f\x64\x65\x6c\145\164\x65\137\147\162\x6f\165\160",
            "\160\157\163\164\x5f\x64\x65\x6c\x65\164\x65\x5f\147\x72\x6f\x75\x70\137\156\157\164\141\154\154\157\x77\145\x64",
        ]);
        goto FHD3G;
        b3SAt:
        $this->db->delete($this->tables["\x67\162\157\165\x70\x73"], [
            "\x69\x64" => $group_id,
        ]);
        goto kI2Cw;
        FgHKP:
        return false;
        goto KNEed;
        GuzJI:
        $this->trigger_events([
            "\x70\x6f\163\164\137\x64\x65\154\x65\x74\145\137\x67\x72\x6f\165\x70",
            "\160\157\163\164\x5f\x64\x65\154\x65\x74\145\x5f\147\x72\157\x75\160\x5f\x73\x75\x63\x63\145\x73\x73\146\x75\154",
        ]);
        goto nouEk;
        ndqEm:
        $this->db->delete(
            $this->tables["\165\x73\x65\162\x73\x5f\x67\162\x6f\x75\x70\x73"],
            [$this->join["\x67\162\157\165\160\x73"] => $group_id]
        );
        goto b3SAt;
        ukV4f:
        $this->db->trans_rollback();
        goto QGn1z;
        SMiUK:
        return false;
        goto ND3wb;
        ND3wb:
        xOv9B:
        goto h7PLo;
        mQCj3:
        return false;
        goto nk6K0;
        QGn1z:
        $this->trigger_events([
            "\160\157\x73\164\x5f\144\x65\154\145\164\145\137\147\162\x6f\165\160",
            "\160\157\163\164\x5f\144\x65\154\145\x74\145\137\147\x72\157\165\x70\x5f\x75\x6e\163\x75\143\x63\145\x73\163\146\x75\154",
        ]);
        goto jyqGT;
        KawT0:
        return true;
        goto ATQ7S;
        FHD3G:
        $this->set_error(
            "\147\162\157\165\x70\x5f\144\x65\x6c\145\164\145\x5f\x6e\x6f\164\x61\154\154\157\167\x65\144"
        );
        goto FgHKP;
        KRFaE:
        if (!(!$group_id || empty($group_id))) {
            goto xOv9B;
        }
        goto SMiUK;
        M_IQZ:
        if (
            !(
                $group->name ==
                $this->config->item(
                    "\x61\x64\155\151\x6e\137\147\162\x6f\x75\160",
                    "\151\x6f\x6e\137\141\165\164\150"
                )
            )
        ) {
            goto IPRhu;
        }
        goto vDSSS;
        h7PLo:
        $group = $this->group($group_id)->row();
        goto M_IQZ;
        ATQ7S:
    }
    public function set_hook($event, $name, $class, $method, $arguments)
    {
        goto Xuh4D;
        SAaEc:
        $this->_ion_hooks->{$event}[$name]->method = $method;
        goto OdC2_;
        OdC2_:
        $this->_ion_hooks->{$event}[$name]->arguments = $arguments;
        goto b7qX8;
        rYmae:
        $this->_ion_hooks->{$event}[$name]->class = $class;
        goto SAaEc;
        Xuh4D:
        $this->_ion_hooks->{$event}[$name] = new stdClass();
        goto rYmae;
        b7qX8:
    }
    public function remove_hook($event, $name)
    {
        goto Rpmxt;
        cW2cd:
        unset($this->_ion_hooks->{$event}[$name]);
        goto ei0Dm;
        ei0Dm:
        pFp9t:
        goto ge8zq;
        Rpmxt:
        if (!isset($this->_ion_hooks->{$event}[$name])) {
            goto pFp9t;
        }
        goto cW2cd;
        ge8zq:
    }
    public function remove_hooks($event)
    {
        goto yHP1S;
        t4lNn:
        unset($this->_ion_hooks->{$event});
        goto EjEB4;
        EjEB4:
        kQck3:
        goto x6oVn;
        yHP1S:
        if (!isset($this->_ion_hooks->{$event})) {
            goto kQck3;
        }
        goto t4lNn;
        x6oVn:
    }
    protected function _call_hook($event, $name)
    {
        goto Y5e21;
        oKvRH:
        WNeLA:
        goto ufzU3;
        ufzU3:
        return false;
        goto Pbxsb;
        Gp3Ae:
        $hook = $this->_ion_hooks->{$event}[$name];
        goto d3B_z;
        Y5e21:
        if (
            !(
                isset($this->_ion_hooks->{$event}[$name]) &&
                method_exists(
                    $this->_ion_hooks->{$event}[$name]->class,
                    $this->_ion_hooks->{$event}[$name]->method
                )
            )
        ) {
            goto WNeLA;
        }
        goto Gp3Ae;
        d3B_z:
        return call_user_func_array(
            [$hook->class, $hook->method],
            $hook->arguments
        );
        goto oKvRH;
        Pbxsb:
    }
    public function trigger_events($events)
    {
        goto tnxGr;
        Eo5Z3:
        oEvnm:
        goto yqNgd;
        REQDN:
        DHTZc:
        goto oCTmD;
        PPM5E:
        WNU9x:
        goto REQDN;
        oCTmD:
        goto CKBpo;
        goto TUITn;
        tfbpX:
        foreach ($events as $event) {
            $this->trigger_events($event);
            HPbvF:
        }
        goto Eo5Z3;
        hMU5J:
        foreach ($this->_ion_hooks->{$events} as $name => $hook) {
            $this->_call_hook($events, $name);
            vzaeZ:
        }
        goto PPM5E;
        tnxGr:
        if (is_array($events) && !empty($events)) {
            goto dr9bN;
        }
        goto Epcoc;
        Epcoc:
        if (
            !(
                isset($this->_ion_hooks->{$events}) &&
                !empty($this->_ion_hooks->{$events})
            )
        ) {
            goto DHTZc;
        }
        goto hMU5J;
        TUITn:
        dr9bN:
        goto tfbpX;
        yqNgd:
        CKBpo:
        goto Z05sG;
        Z05sG:
    }
    public function set_message_delimiters($start_delimiter, $end_delimiter)
    {
        goto fZqkV;
        LPZlu:
        $this->message_end_delimiter = $end_delimiter;
        goto KTHKK;
        KTHKK:
        return true;
        goto h36I6;
        fZqkV:
        $this->message_start_delimiter = $start_delimiter;
        goto LPZlu;
        h36I6:
    }
    public function set_error_delimiters($start_delimiter, $end_delimiter)
    {
        goto X2ZoU;
        x50gn:
        return true;
        goto ZhFW9;
        X2ZoU:
        $this->error_start_delimiter = $start_delimiter;
        goto iv3ff;
        iv3ff:
        $this->error_end_delimiter = $end_delimiter;
        goto x50gn;
        ZhFW9:
    }
    public function set_message($message)
    {
        $this->messages[] = $message;
        return $message;
    }
    public function messages()
    {
        goto As2JM;
        L1H3A:
        foreach ($this->messages as $message) {
            goto sz7c1;
            sz7c1:
            $messageLang = $this->lang->line($message)
                ? $this->lang->line($message)
                : "\x23\43" . $message . "\x23\x23";
            goto s1Abk;
            s1Abk:
            $_output .=
                $this->message_start_delimiter .
                $messageLang .
                $this->message_end_delimiter;
            goto E9UCK;
            E9UCK:
            K6BCP:
            goto pbqww;
            pbqww:
        }
        goto Upz87;
        HkUqS:
        return $_output;
        goto rteAS;
        As2JM:
        $_output = "";
        goto L1H3A;
        Upz87:
        dTRbR:
        goto HkUqS;
        rteAS:
    }
    public function messages_array($langify = true)
    {
        goto D6pW7;
        YPJ0A:
        goto sybWl;
        goto w0h55;
        TjLyO:
        MYna0:
        goto L94zz;
        D6pW7:
        if ($langify) {
            goto ddOUo;
        }
        goto v4yKQ;
        U9UNa:
        foreach ($this->messages as $message) {
            goto Y1rC3;
            Y1rC3:
            $messageLang = $this->lang->line($message)
                ? $this->lang->line($message)
                : "\43\43" . $message . "\43\43";
            goto mO33g;
            mO33g:
            $_output[] =
                $this->message_start_delimiter .
                $messageLang .
                $this->message_end_delimiter;
            goto hsWHs;
            hsWHs:
            e9TUs:
            goto MZ9Z0;
            MZ9Z0:
        }
        goto TjLyO;
        NjFri:
        $_output = [];
        goto U9UNa;
        v4yKQ:
        return $this->messages;
        goto YPJ0A;
        w0h55:
        ddOUo:
        goto NjFri;
        L94zz:
        return $_output;
        goto W6iN0;
        W6iN0:
        sybWl:
        goto AFl2M;
        AFl2M:
    }
    public function clear_messages()
    {
        $this->messages = [];
        return true;
    }
    public function set_error($error)
    {
        $this->errors[] = $error;
        return $error;
    }
    public function errors()
    {
        goto SnqLz;
        UTkKx:
        return $_output;
        goto ddoQE;
        q2Jtt:
        foreach ($this->errors as $error) {
            goto Q8xDQ;
            Q8xDQ:
            $errorLang = $this->lang->line($error)
                ? $this->lang->line($error)
                : "\43\x23" . $error . "\43\x23";
            goto GO0nP;
            GO0nP:
            $_output .=
                $this->error_start_delimiter .
                $errorLang .
                $this->error_end_delimiter;
            goto Ux5NH;
            Ux5NH:
            oGzYz:
            goto MVC1G;
            MVC1G:
        }
        goto XejPh;
        SnqLz:
        $_output = "";
        goto q2Jtt;
        XejPh:
        Z8_jH:
        goto UTkKx;
        ddoQE:
    }
    public function errors_array($langify = true)
    {
        goto EMsXI;
        cR12T:
        $_output = [];
        goto UKn8z;
        IevpU:
        CWgT1:
        goto XyUHa;
        UKn8z:
        foreach ($this->errors as $error) {
            goto uWkRa;
            uWkRa:
            $errorLang = $this->lang->line($error)
                ? $this->lang->line($error)
                : "\x23\x23" . $error . "\x23\43";
            goto p5ywf;
            MeV7T:
            JEudu:
            goto vueI0;
            p5ywf:
            $_output[] =
                $this->error_start_delimiter .
                $errorLang .
                $this->error_end_delimiter;
            goto MeV7T;
            vueI0:
        }
        goto IevpU;
        XyUHa:
        return $_output;
        goto I3YSR;
        P0kUn:
        return $this->errors;
        goto mBjQd;
        mBjQd:
        goto TC8qM;
        goto ReuUq;
        ReuUq:
        plgty:
        goto cR12T;
        I3YSR:
        TC8qM:
        goto ohpJH;
        EMsXI:
        if ($langify) {
            goto plgty;
        }
        goto P0kUn;
        ohpJH:
    }
    public function clear_errors()
    {
        $this->errors = [];
        return true;
    }
    protected function _set_password_db($identity, $password)
    {
        goto kAAnY;
        kAAnY:
        $hash = $this->hash_password($password, $identity);
        goto udYvy;
        RjQ0r:
        T2qc6:
        goto pgZjN;
        Mbg5K:
        $this->db->update($this->tables["\165\163\145\x72\163"], $data, [
            $this->identity_column => $identity,
        ]);
        goto Au_ou;
        pgZjN:
        $data = [
            "\x70\141\x73\163\167\x6f\x72\144" => $hash,
            "\x72\x65\155\145\155\x62\145\162\x5f\x63\x6f\x64\x65" => null,
            "\146\x6f\162\147\157\164\164\145\x6e\137\160\x61\163\x73\167\x6f\x72\x64\x5f\143\157\144\145" => null,
            "\146\157\162\147\x6f\x74\164\145\156\x5f\160\141\x73\163\167\157\162\144\137\164\x69\155\x65" => null,
        ];
        goto ywVI5;
        ywVI5:
        $this->trigger_events("\145\170\164\x72\x61\137\x77\x68\x65\x72\x65");
        goto Mbg5K;
        Z8S0n:
        return false;
        goto RjQ0r;
        Au_ou:
        return $this->db->affected_rows() == 1;
        goto pPpUy;
        udYvy:
        if (!($hash === false)) {
            goto T2qc6;
        }
        goto Z8S0n;
        pPpUy:
    }
    protected function _filter_data($table, $data)
    {
        goto nuYBY;
        nuYBY:
        $filtered_data = [];
        goto XnrVM;
        XnrVM:
        $columns = $this->db->list_fields($table);
        goto cJv9o;
        daOTy:
        return $filtered_data;
        goto nJiaP;
        cJv9o:
        if (!is_array($data)) {
            goto YfGuE;
        }
        goto qKOHu;
        Wydbb:
        w7tG1:
        goto A4Jx3;
        qKOHu:
        foreach ($columns as $column) {
            goto KyaJb;
            KyaJb:
            if (!array_key_exists($column, $data)) {
                goto xrXnh;
            }
            goto L_6Jt;
            L_6Jt:
            $filtered_data[$column] = $data[$column];
            goto r5h5R;
            O3B6j:
            gITJU:
            goto SXGI0;
            r5h5R:
            xrXnh:
            goto O3B6j;
            SXGI0:
        }
        goto Wydbb;
        A4Jx3:
        YfGuE:
        goto daOTy;
        nJiaP:
    }
    protected function _random_token($result_length = 32)
    {
        goto hfnb1;
        ddAZL:
        return bin2hex(
            mcrypt_create_iv($result_length / 2, MCRYPT_DEV_URANDOM)
        );
        goto YlCVA;
        boFkq:
        r3buZ:
        goto YXw0p;
        RtTMq:
        if (
            !function_exists(
                "\x6d\143\162\171\160\x74\x5f\x63\162\x65\x61\164\x65\137\151\166"
            )
        ) {
            goto LGqMz;
        }
        goto ddAZL;
        W91Vm:
        $result_length = 32;
        goto boFkq;
        ajP9K:
        if (
            !function_exists(
                "\x6f\x70\145\156\x73\x73\154\137\x72\x61\156\144\157\155\x5f\x70\163\x65\165\144\x6f\x5f\142\171\164\x65\163"
            )
        ) {
            goto JNrS2;
        }
        goto rS6U6;
        rS6U6:
        return bin2hex(openssl_random_pseudo_bytes($result_length / 2));
        goto ntCqb;
        hfnb1:
        if (!(!isset($result_length) || intval($result_length) <= 8)) {
            goto r3buZ;
        }
        goto W91Vm;
        HoIvO:
        return bin2hex(random_bytes($result_length / 2));
        goto qqRdi;
        YXw0p:
        if (
            !function_exists("\162\141\x6e\144\157\155\137\x62\x79\x74\x65\163")
        ) {
            goto W2oBr;
        }
        goto HoIvO;
        wXojB:
        return false;
        goto krhgN;
        ntCqb:
        JNrS2:
        goto wXojB;
        qqRdi:
        W2oBr:
        goto RtTMq;
        YlCVA:
        LGqMz:
        goto ajP9K;
        krhgN:
    }
    protected function _get_hash_parameters($identity = null)
    {
        goto kbF0S;
        vDLf4:
        switch ($this->hash_method) {
            case "\x62\x63\162\171\x70\x74":
                $params = [
                    "\x63\157\163\x74" => $is_admin
                        ? $this->config->item(
                            "\x62\143\x72\171\160\164\x5f\x61\144\155\x69\156\x5f\143\157\163\x74",
                            "\151\x6f\156\137\141\x75\164\150"
                        )
                        : $this->config->item(
                            "\x62\143\x72\171\x70\164\137\x64\145\146\x61\x75\154\164\137\x63\x6f\163\x74",
                            "\x69\x6f\156\x5f\x61\165\164\150"
                        ),
                ];
                goto uc25u;
            case "\x61\162\x67\x6f\156\x32":
                $params = $is_admin
                    ? $this->config->item(
                        "\141\162\x67\157\156\62\x5f\141\144\155\x69\156\x5f\x70\141\162\x61\155\x73",
                        "\151\157\x6e\137\141\165\x74\150"
                    )
                    : $this->config->item(
                        "\141\162\147\x6f\156\x32\x5f\x64\x65\x66\141\165\154\x74\x5f\160\141\x72\141\155\x73",
                        "\x69\x6f\x6e\x5f\141\165\164\x68"
                    );
                goto uc25u;
            default:
        }
        goto ufejx;
        JSYYy:
        wOYTl:
        goto HeZ6a;
        gOqyY:
        $is_admin = true;
        goto gkmRo;
        f0x2o:
        if (
            !(
                $user_id &&
                $this->in_group(
                    $this->config->item(
                        "\141\144\x6d\151\x6e\x5f\x67\162\x6f\165\160",
                        "\151\x6f\x6e\137\x61\165\164\150"
                    ),
                    $user_id
                )
            )
        ) {
            goto EKbX9;
        }
        goto gOqyY;
        m91Bs:
        if (!$identity) {
            goto wOYTl;
        }
        goto nSf5O;
        kbF0S:
        $is_admin = false;
        goto m91Bs;
        Biwuk:
        uc25u:
        goto DujPI;
        nSf5O:
        $user_id = $this->get_user_id_from_identity($identity);
        goto f0x2o;
        gkmRo:
        EKbX9:
        goto JSYYy;
        HeZ6a:
        $params = false;
        goto vDLf4;
        ufejx:
        CZ363:
        goto Biwuk;
        DujPI:
        return $params;
        goto Tu2B5;
        Tu2B5:
    }
    protected function _get_hash_algo()
    {
        goto Rfwll;
        rkD9S:
        return $algo;
        goto AI5m2;
        Rfwll:
        $algo = false;
        goto t4br2;
        Fq2Hm:
        ilWhc:
        goto giY5J;
        t4br2:
        switch ($this->hash_method) {
            case "\x62\143\162\171\x70\x74":
                $algo = PASSWORD_BCRYPT;
                goto LNlHQ;
            case "\x61\x72\x67\x6f\156\x32":
                $algo = PASSWORD_ARGON2I;
                goto LNlHQ;
            default:
        }
        goto Fq2Hm;
        giY5J:
        LNlHQ:
        goto rkD9S;
        AI5m2:
    }
    protected function _generate_selector_validator_couple(
        $selector_size = 40,
        $validator_size = 128
    ) {
        goto ZVqDy;
        ZVqDy:
        $selector = $this->_random_token($selector_size);
        goto oN9IR;
        YtQvV:
        $validator_hashed = $this->hash_password($validator);
        goto Xd0GL;
        nLW9P:
        return (object) [
            "\163\x65\154\145\143\164\157\162" => $selector,
            "\166\141\x6c\151\x64\141\x74\157\x72\x5f\x68\x61\x73\x68\x65\144" => $validator_hashed,
            "\165\x73\x65\162\137\x63\x6f\x64\x65" => $user_code,
        ];
        goto UWdhY;
        Xd0GL:
        $user_code = "{$selector}\x2e{$validator}";
        goto nLW9P;
        oN9IR:
        $validator = $this->_random_token($validator_size);
        goto YtQvV;
        UWdhY:
    }
    protected function _retrieve_selector_validator_couple($user_code)
    {
        goto Cg_iz;
        Cg_iz:
        if (!$user_code) {
            goto C0aTJ;
        }
        goto mhXF7;
        ymCaQ:
        if (!(count($tokens) === 2)) {
            goto Rs2Y0;
        }
        goto Vgu9y;
        Vgu9y:
        return (object) [
            "\x73\145\x6c\145\143\x74\x6f\162" => $tokens[0],
            "\166\141\154\151\x64\141\x74\157\x72" => $tokens[1],
        ];
        goto IQG8B;
        mhXF7:
        $tokens = explode("\x2e", $user_code);
        goto ymCaQ;
        hpebr:
        C0aTJ:
        goto pI0Rq;
        IQG8B:
        Rs2Y0:
        goto hpebr;
        pI0Rq:
        return false;
        goto g7d6i;
        g7d6i:
    }
    protected function _password_verify_sha1_legacy(
        $identity,
        $password,
        $hashed_password_db
    ) {
        goto Y_a8F;
        IjYM5:
        HWas_:
        goto JVH6c;
        VH_so:
        if ($salt_length) {
            goto XZ4NE;
        }
        goto bXLHw;
        r8aw1:
        goto HWas_;
        goto UkaPq;
        zNqJ3:
        if ($result) {
            goto y3WEo;
        }
        goto tjlIh;
        bq1ve:
        g2LyH:
        goto Lx1WX;
        Y_a8F:
        $this->trigger_events(
            "\160\x72\145\x5f\x73\x68\x61\61\137\x70\x61\x73\163\x77\157\162\x64\x5f\x6d\151\x67\162\x61\x74\x69\x6f\x6e"
        );
        goto mpybt;
        jTxLI:
        rWzQn:
        goto opfSX;
        t7337:
        $query = $this->db
            ->select("\x73\141\154\164")
            ->where($this->identity_column, $identity)
            ->limit(1)
            ->get($this->tables["\x75\163\x65\x72\163"]);
        goto dw_pZ;
        Hh8LT:
        goto r1jEo;
        goto WHdHH;
        Mf4vM:
        return $result;
        goto jTxLI;
        mpybt:
        if (
            $this->config->item(
                "\163\164\x6f\x72\145\137\163\x61\154\164",
                "\151\x6f\x6e\x5f\x61\165\x74\150"
            )
        ) {
            goto pV_8w;
        }
        goto Nd076;
        ydnRF:
        $this->trigger_events([
            "\160\x6f\x73\164\137\x73\x68\x61\x31\137\x70\x61\163\x73\167\x6f\162\x64\137\155\151\147\162\141\x74\151\x6f\156",
            "\x70\157\x73\164\x5f\163\x68\141\61\x5f\160\x61\x73\x73\167\x6f\162\144\137\x6d\x69\x67\162\x61\x74\151\157\x6e\137\163\165\143\143\x65\163\x73\x66\165\154",
        ]);
        goto MqVFV;
        MqVFV:
        r1jEo:
        goto Mf4vM;
        Lx1WX:
        $result = $this->_set_password_db($identity, $password);
        goto zNqJ3;
        bXLHw:
        $this->trigger_events([
            "\160\x6f\x73\x74\137\163\x68\141\61\137\160\x61\x73\163\x77\157\162\x64\137\x6d\151\x67\x72\141\x74\x69\157\156",
            "\160\157\x73\164\x5f\x73\150\141\61\x5f\160\x61\x73\x73\x77\x6f\162\144\137\155\x69\x67\x72\141\164\x69\157\156\x5f\165\x6e\x73\165\143\x63\x65\x73\163\x66\165\154",
        ]);
        goto Z7ZQ1;
        dJJw0:
        $this->trigger_events([
            "\x70\157\163\164\x5f\x73\x68\x61\x31\x5f\x70\x61\163\163\x77\157\x72\144\x5f\155\151\x67\x72\x61\x74\x69\157\x6e",
            "\160\157\163\x74\137\163\150\141\61\x5f\160\141\x73\163\167\x6f\162\144\x5f\155\151\147\x72\141\164\151\x6f\x6e\x5f\165\x6e\x73\165\143\143\145\163\x73\146\165\154",
        ]);
        goto vFbmr;
        LQkTd:
        $hashed_password = sha1($password . $salt_db->salt);
        goto IjYM5;
        dw_pZ:
        $salt_db = $query->row();
        goto ucz6Q;
        vcFW2:
        $salt = substr($hashed_password_db, 0, $salt_length);
        goto OYbC7;
        tjlIh:
        $this->trigger_events([
            "\x70\157\163\164\x5f\x73\x68\141\x31\x5f\160\x61\x73\x73\x77\157\162\144\137\155\151\147\x72\141\164\x69\157\156",
            "\160\157\x73\x74\x5f\x73\x68\x61\x31\137\160\x61\x73\x73\x77\x6f\x72\144\137\x6d\x69\x67\x72\x61\x74\x69\x6f\x6e\x5f\x75\x6e\163\x75\x63\x63\145\163\163\146\x75\x6c",
        ]);
        goto Hh8LT;
        Z7ZQ1:
        return false;
        goto Rqkxc;
        vFbmr:
        return false;
        goto qwqXc;
        JVH6c:
        if ($hashed_password === $hashed_password_db) {
            goto g2LyH;
        }
        goto dJJw0;
        UkaPq:
        pV_8w:
        goto t7337;
        Rqkxc:
        XZ4NE:
        goto vcFW2;
        dVyub:
        $this->trigger_events([
            "\160\157\163\x74\x5f\x73\150\x61\x31\137\160\141\x73\x73\167\x6f\162\144\137\155\151\x67\x72\141\164\x69\157\156",
            "\160\x6f\163\x74\x5f\x73\150\141\61\137\160\141\x73\163\x77\x6f\162\144\x5f\x6d\151\x67\x72\x61\164\x69\157\x6e\x5f\165\x6e\x73\x75\x63\x63\x65\x73\x73\146\165\154",
        ]);
        goto vfujE;
        nbM2w:
        OufCS:
        goto LQkTd;
        Nd076:
        $salt_length = $this->config->item(
            "\163\141\154\x74\137\154\145\156\x67\x74\150",
            "\x69\157\x6e\137\141\165\x74\x68"
        );
        goto VH_so;
        OYbC7:
        $hashed_password =
            $salt . substr(sha1($salt . $password), 0, -$salt_length);
        goto r8aw1;
        ucz6Q:
        if (!($query->num_rows() !== 1)) {
            goto OufCS;
        }
        goto dVyub;
        vfujE:
        return false;
        goto nbM2w;
        WHdHH:
        y3WEo:
        goto ydnRF;
        qwqXc:
        goto rWzQn;
        goto bq1ve;
        opfSX:
    }
}

Function Calls

None

Variables

None

Stats

MD5 af2027524944c7aada980b1cdaca0ff8
Eval Count 0
Decode Time 121 ms