# Path: scripts/pyparsing/util.py
# class __config_flags:
# class _UnboundedCache:
# class _FifoCache:
#     def _set(cls, dname, value):
# def col(loc, strg):
# def lineno(loc, strg):
# def line(loc, strg):
#     def __init__(self):
#         def get(self, key):
#         def set(self, key, value):
#         def clear(self):
#         def cache_len(self):
#     def __init__(self, size):
#         def get(self, key):
#         def set(self, key, value):
#         def clear(self):
#         def cache_len(self):
# def _escapeRegexRangeChars(s):
# def _collapseAndEscapeRegexRangeChars(s):
#     def is_consecutive(c):
#     def escape_re_range_char(c):
# def _flatten(L):


import string
import copy
import sys
import warnings
import re
import sre_constants
import traceback
import types
                import pdb
    from collections.abc import Iterable
    from collections import Iterable
from operator import itemgetter
from functools import wraps
from threading import RLock
from .util import (
    _FifoCache,
    _UnboundedCache,
    __config_flags,
    _collapseAndEscapeRegexRangeChars,
    _escapeRegexRangeChars,
    _bslash,
    _flatten,
)
from pyparsing.exceptions import *
from pyparsing.actions import *
from pyparsing.results import ParseResults, _ParseResultsWithOffset
                if callPreParse and self.callPreparse:
                    preloc = self.preParse(instring, loc)
                else:
                    preloc = loc
                tokensStart = preloc
                if self.mayIndexError or preloc >= len(instring):
                    try:
                        loc, tokens = self.parseImpl(instring, preloc, doActions)
                    except IndexError:
                        raise ParseException(instring, len(instring), self.errmsg, self)
                else:
                    loc, tokens = self.parseImpl(instring, preloc, doActions)
            except Exception as err:
                # ~ print("Exception raised:", err)
                if self.debugActions[FAIL]:
                    self.debugActions[FAIL](instring, tokensStart, self, err)
                if self.failAction:
                    self.failAction(instring, tokensStart, self, err)
                raise
        else:
            if callPreParse and self.callPreparse:
                preloc = self.preParse(instring, loc)
            else:
                preloc = loc
            tokensStart = preloc
            if self.mayIndexError or preloc >= len(instring):
                try:
                    loc, tokens = self.parseImpl(instring, preloc, doActions)
                except IndexError:
                    raise ParseException(instring, len(instring), self.errmsg, self)

# Path: scripts/pyparsing/util.py
# class __config_flags:
# class _UnboundedCache:
# class _FifoCache:
#     def _set(cls, dname, value):
# def col(loc, strg):
# def lineno(loc, strg):
# def line(loc, strg):
#     def __init__(self):
#         def get(self, key):
#         def set(self, key, value):
#         def clear(self):
#         def cache_len(self):
#     def __init__(self, size):
#         def get(self, key):
#         def set(self, key, value):
#         def clear(self):
#         def cache_len(self):
# def _escapeRegexRangeChars(s):
# def _collapseAndEscapeRegexRangeChars(s):
#     def is_consecutive(c):
#     def escape_re_range_char(c):
# def _flatten(L):


# Path: scripts/pyparsing/core.py
import string
import copy
import sys
import warnings
import re
import sre_constants
import traceback
import types
                import pdb
    from collections.abc import Iterable
    from collections import Iterable
from operator import itemgetter
from functools import wraps
from threading import RLock
from .util import (
    _FifoCache,
    _UnboundedCache,
    __config_flags,
    _collapseAndEscapeRegexRangeChars,
    _escapeRegexRangeChars,
    _bslash,
    _flatten,
)
from pyparsing.exceptions import *
from pyparsing.actions import *
from pyparsing.results import ParseResults, _ParseResultsWithOffset

                if callPreParse and self.callPreparse:
                    preloc = self.preParse(instring, loc)
                else:
                    preloc = loc
                tokensStart = preloc
                if self.mayIndexError or preloc >= len(instring):
                    try:
                        loc, tokens = self.parseImpl(instring, preloc, doActions)
                    except IndexError:
                        raise ParseException(instring, len(instring), self.errmsg, self)
                else:
                    loc, tokens = self.parseImpl(instring, preloc, doActions)
            except Exception as err:
                # ~ print("Exception raised:", err)
                if self.debugActions[FAIL]:
                    self.debugActions[FAIL](instring, tokensStart, self, err)
                if self.failAction:
                    self.failAction(instring, tokensStart, self, err)
                raise
        else:
            if callPreParse and self.callPreparse:
                preloc = self.preParse(instring, loc)
            else:
                preloc = loc
            tokensStart = preloc
            if self.mayIndexError or preloc >= len(instring):
                try:
                    loc, tokens = self.parseImpl(instring, preloc, doActions)
                except IndexError:
                    raise ParseException(instring, len(instring), self.errmsg, self)

            else: