def decompose_hangul_syllable(hangul_syllable, fully_decompose=False):
if not _is_hangul_syllable(hangul_syllable):<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>s_index = hangul_syllable - S_BASE<EOL>if fully_decompose:<EOL><INDENT>l_index = s_index // N_COUNT<EOL>v_index = (s_index % N_COUNT) // T_COUNT<EOL>t_index = s_index % T_COUNT<EOL>l_part = L_BASE + l_index<EOL>v_part = V_BASE + v_index<EOL>t_part = (T_BASE + t_index) if t_index > <NUM_LIT:0> else None<EOL>return l_part, v_part, t_part<EOL><DEDENT>else:<EOL><INDENT>if _get_hangul_syllable_type(hangul_syllable) == "<STR_LIT>":  <EOL><INDENT>l_index = s_index // N_COUNT<EOL>v_index = (s_index % N_COUNT) // T_COUNT<EOL>l_part = L_BASE + l_index<EOL>v_part = V_BASE + v_index<EOL>return l_part, v_part<EOL><DEDENT>else:  <EOL><INDENT>lv_index = (s_index // T_COUNT) * T_COUNT<EOL>t_index = s_index % T_COUNT<EOL>lv_part = S_BASE + lv_index<EOL>t_part = T_BASE + t_index<EOL>return lv_part, t_part<EOL><DEDENT><DEDENT>
Function for taking a Unicode scalar value representing a Hangul syllable and decomposing it into a tuple
representing the scalar values of the decomposed (canonical decomposition) Jamo.  If the Unicode scalar value
passed in is not in the range of Hangul syllable values (as defined in UnicodeData.txt), a ValueError will be
raised.

The algorithm for doing the decomposition is described in the Unicode Standard, ch. 03, section 3.12,
"Conjoining Jamo Behavior".

Example: U+D4DB -> (U+D4CC, U+11B6)  # (canonical decomposition, default)
         U+D4DB -> (U+1111, U+1171, U+11B6)  # (full canonical decomposition)

:param hangul_syllable: Unicode scalar value for Hangul syllable
:param fully_decompose: Boolean indicating whether or not to do a canonical decomposition (default behavior is
                        fully_decompose=False) or a full canonical decomposition (fully_decompose=True)
:return: Tuple of Unicode scalar values for the decomposed Jamo.