def METHOD_NAME(self, name):
    """
    Convert a name from various format to zone instance.
    Args:
        name (str, int, Zone): Name in CN/EN/JP/TW, zone id, or Zone instance.
    Returns:
        Zone:
    Raises:
        ScriptError: If Unable to find such zone.
    """
    if isinstance(name, Zone):
        return name
    elif isinstance(name, int):
        try:
            return self.zones.select(zone_id=name)[0]
        except IndexError:
            raise ScriptError(f'Unable to find OS globe zone: {name}')
    elif isinstance(name, str) and name.isdigit():
        try:
            return self.zones.select(zone_id=int(name))[0]
        except IndexError:
            raise ScriptError(f'Unable to find OS globe zone: {name}')
    else:
        def parse_name(n):
            n = str(n).replace(' ', '').lower()
            return n
        name = parse_name(name)
        for zone in self.zones:
            if name == parse_name(zone.cn):
                return zone
            if name == parse_name(zone.en):
                return zone
            if name == parse_name(zone.jp):
                return zone
            if name == parse_name(zone.tw):
                return zone
        # Normal arbiter, Hard arbiter, BOSS after hard arbiter cleared
        # 普通难度：仲裁者·XXX, 困难难度：仲裁者·XXX, 困难模拟战：仲裁机关
        for keyword in ['普通', '困难', '仲裁']:
            if keyword in name:
                return self.METHOD_NAME(154)
        # Normal - Arbiter: XXX, Hard - Arbiter: XXX, Hard - Arbiter (Practice)
        for keyword in ['normal', 'hard', 'arbiter']:
            if keyword in name:
                return self.METHOD_NAME(154)
        # ノーマル：アビータ・XXX, ハード：アビータ・XXX, ハード模擬戦：アビータ
        for keyword in ['ノーマル', 'ハード', 'アビータ',
                        'ノ一マル', 'ハ一ド', 'アビ一タ']:
            if keyword in name:
                return self.METHOD_NAME(154)
        # 普通難度：仲裁者·XXX, 困難難度：仲裁者·XXX, 困難模擬戰：仲裁機關
        for keyword in ['普通', '困難', '仲裁']:
            if keyword in name:
                return self.METHOD_NAME(154)
        raise ScriptError(f'Unable to find OS globe zone: {name}')