def annotate_stacktrace(self, stacktrace):
        out = ''
        for ln in stacktrace.splitlines():
            out += ln + '\n'
            match = re.search(r'/static/min/(.+)(\.[0-9a-f]+)\.js:(\d+):(\d+)', ln)
            if match:
                # Get the appropriate source map for the minified file.
                minified_src = match.groups()[0] + '.js'
                index = self._index_for(minified_src)

                gen_line, gen_col = list(map(int, match.groups()[2:4]))
                # The sourcemap lib is 0-based, so subtract 1 from line and col.
                try:
                    result = index.lookup(line=gen_line-1, column=gen_col-1)
                    out += ('       = %s line %d column %d\n' %
                        (result.src, result.src_line+1, result.src_col+1))
                except __HOLE__:
                    out +=  '       [Unable to look up in source map]\n'

            if ln.startswith('    at'):
                out += '\n'
        return out
dataset/ETHPy150Open zulip/zulip/zerver/lib/unminify.py/SourceMap.annotate_stacktrace