public function get($i)
    {
        if (!isset($this->fragments[$i])) {
            return null;
        }

        if (
            !isset($this->halved[$i])   // not halved
            || !$this->fragments[$i]    // not set
            || !isset($this->sizes[$i]) // no solvable
        ) {
            return $this->fragments[$i];
        }

        $half = (int)floor($this->sizes[$i] / 2);

        $value = $this->fragments[$i];

        // Special case for g & h formats handling : if value is the same
        // as the half, which is not a possible value due to division,
        // ti means it is 0
        if ($value === $half) {
            $value = 0;
        }

        if ($this->halved[$i]) {
            $value += $half;
        }

        return $value;
    }