protected function unpack(string $data)
    {
        if ($data) {
            $data = unserialize($data);
            if (is_array($data) && isset($data['data']) && isset($data['timeout'])) {
                $timeout = intval($data['timeout']);
                if (!$timeout || $timeout >= $this->microtime()) {
                    return $this->toUnpack($data['data']);
                }
            }
        }

        return false;
    }